All checks were successful
Go CI/CD / go-ci (push) Successful in 36s
Introduces the 'Singularity' implementation, a CQRS Bus that supports commands, queries, and events, along with middleware extensibility. Includes comprehensive tests, modular files for commands, queries, and events, as well as CI/CD workflows.
18 lines
570 B
Go
18 lines
570 B
Go
package cqrs
|
|
|
|
import (
|
|
"context"
|
|
)
|
|
|
|
type Bus interface {
|
|
RegisterCommandHandler(cmd Command, handler CommandHandler)
|
|
RegisterQueryHandler(query Query, handler QueryHandler)
|
|
RegisterEventHandler(event Event, handler EventHandler)
|
|
UseCommandMiddleware(middleware CommandMiddleware)
|
|
UseQueryMiddleware(middleware QueryMiddleware)
|
|
UseEventMiddleware(middleware EventMiddleware)
|
|
ExecuteCommand(ctx context.Context, cmd Command) ([]Event, error)
|
|
ExecuteQuery(ctx context.Context, query Query) (interface{}, error)
|
|
EmitEvent(ctx context.Context, event Event) error
|
|
}
|