What problem does it solve? It standardizes how Go backend code defines, raises, and dispatches domain and integration events so bounded contexts stay decoupled and events are never lost outside a database transaction. ## Core Features & Use Cases - Domain Event Patterns: Defines events as generic type aliases over types.DomainEvent[T] with past-tense naming, primitive-only payloads, and constructors. - Transactional Outbox: Enforces raising events inside entity methods and draining them via domainEventRepo.SaveAll inside the same unit of work, never publishing directly from use cases. - Integration Events: Covers cross-service events published only from handlers via ExternalMediator, plus UnmarshalDomainEvent/UnmarshalIntegrationEvent helpers for handlers. - Use Case: When adding a transcoding.transcoding_job.started event to a Go service, follow the registry patterns to create the payload struct, type alias, constructor, entity raise, and repository drain without breaking the outbox contract. ## Quick Start Ask the agent to create a new Go domain event for an aggregate in a bounded context following the event-go patterns and checklist.