package cqrs import ( "context" ) type Command interface{} type CommandMiddleware func(CommandHandler) CommandHandler type CommandHandlerFunc func(ctx context.Context, cmd Command) ([]Event, error) func (f CommandHandlerFunc) Handle(ctx context.Context, cmd Command) ( []Event, error, ) { return f(ctx, cmd) } type CommandHandler interface { Handle(ctx context.Context, cmd Command) ([]Event, error) }