architecture decision

ADR-001: Choose event-driven order processing

Orders are processed through domain events so payment, inventory, and shipping can evolve independently.

Decision RecordMay 26, 2026AcceptedMessaging

Context

Order processing coordinates payment, inventory, fulfillment, and customer notifications. A synchronous workflow would couple these capabilities to the order service and make downstream changes harder to release independently.

Decision

The Orders domain will publish domain events for important order lifecycle changes. Downstream services consume those events and own their local processing, retries, and failure handling.

Consequences

Teams can add or change downstream processing without changing the order service contract for every workflow change. Consumers must handle eventual consistency and duplicate event delivery.