goes is an opinionated transactional event sourcing / CQRS framework using PostgreSQL as both event store and query store. It handles all the event dispatching, serialization, deserialization, persistence and command execution logic for you. Commands: Commands are responsible for: validating data, validating that the action can be performed given the current state of the application and Building the event. A Command returns 1 Event + optionnaly 1 non persisted event. The non persisted event can be used to send non hashed tokens to a SendEmail reactor for example.