Skip to content

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

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.

FieldTypeDescription
ticketIdTicketId
orderOrderId
readyAtInstant

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).

FieldTypeDescription
orderIdOrderId
customerCustomerId
fulfillmentFulfillment
totalDecimal
placedAtInstant