Integration Events
The cross-context published-language flows: who emits each integration event and who consumes it.
flowchart LR
Kitchen -->|publishes| evt_Kitchen_TicketReady(["Kitchen.TicketReady"])
Ordering -->|publishes| evt_Ordering_OrderPlaced(["Ordering.OrderPlaced"])
evt_Ordering_OrderPlaced -->|consumed by| Delivery
evt_Ordering_OrderPlaced -->|consumed by| Kitchen
evt_Ordering_OrderPlaced -->|consumed by| Payment
Event Schemas
Section titled “Event Schemas”Kitchen.TicketReady
Section titled “Kitchen.TicketReady”Raised when a ticket is finished and put up on the pass. A delivery / dine-in handler reacts to it; kept primitive as a published fact.
| Field | Type | Description |
|---|---|---|
| ticketId | TicketId | |
| order | OrderId | |
| readyAt | Instant |
Ordering.OrderPlaced
Section titled “Ordering.OrderPlaced”Announced to the rest of the system when an order is placed. An integration event is a published language — its fields stay primitive (ids/scalars/enums), never leaking internal value objects. Kitchen, Delivery and Payment all subscribe to it (authorized by the open-host relations).
| Field | Type | Description |
|---|---|---|
| orderId | OrderId | |
| customer | CustomerId | |
| fulfillment | Fulfillment | |
| total | Decimal | |
| placedAt | Instant |