CQRS
func (h *UserHandlers) CQRS(r *cqrs.Registry) { cqrs.HandleCommand(r, h.create) // func(ctx, CreateUser) error cqrs.HandleQuery(r, h.byID) // func(ctx, UserByID) (*User, error)}
err := commands.Execute(ctx, CreateUser{Email: e})u, err := cqrs.Ask[*User](ctx, queries, UserByID{ID: id})cqrs.Module(cqrs.Use(mw)) wraps every handler, for logging or a transaction per command. Publish domain events with *events.Emitter.