ddd-domain-event

Installation
SKILL.md

One-line summary

A domain event is an immutable record that a business-significant thing happened — past tense, named in the ubiquitous language, carrying the data downstream listeners need to react.

When to use this skill

  • Crossing aggregate boundaries — two aggregates must coordinate, but they live in separate transactions.
  • Informing other bounded contexts that a noteworthy thing happened in this one.
  • Building read models, projections, or downstream integrations (audit logs, analytics, search indexes).
  • Signalling a lifecycle transition the business itself talks about: an order is placed, a payment settles, a refund is issued, a shipment leaves the warehouse.

When NOT to use this skill

  • The state change is internal to one aggregate and has no listeners — just call the method directly.
  • The "event" is really a command (an imperative request to do something). Commands and events are different: PlaceOrder is a command, OrderPlaced is an event.
  • The interaction must be synchronous within a single transaction — that is not an event, it is a method call.

Core content

Installs
17
GitHub Stars
1
First Seen
Jul 13, 2026
ddd-domain-event — yonatankarp/software-design-skills