CQRS in Go series: Part 1: the aggregate, Transition() and Clone() Part 2: command handlers without side effects Part 3: sagas and event choreography Part 4: PostgreSQL as an event store The problem — two aggregates need to cooperate Concrete scenario: a payment is validated. The Payment aggregate emits a PaymentConfirmed event. In response, a shipment needs to be created in the Shippin