Current-state architecture · Northwind Ingestion
One producer-facing gateway, one shared queue, one warehouse landing path
This page describes production as it exists on 2026-08-18. Proposed dispatcher and split-queue components are shown only as a clearly marked future state.
System context and boundary
Checkout, Catalog, and Inventory are first-party producers. The gateway authenticates and accepts their events. The warehouse and its readers are downstream. Batch imports are a separate path and outside this architecture page.
The dispatcher and two queues are proposed. Production still follows the single ingest queue path.
Containers and responsibilities
currentGateway
Identity and acceptance
mTLS, audience claim, envelope validation, request correlation, and queue write.
Queue
Shared 24-hour buffer
ingest holds every first-party event and has no failover.
Consumer group
Validate and land
Three normal replicas read the queue and write the warehouse.
Warehouse
Downstream record
Stores accepted events; schema ownership sits outside Platform.
Primary runtime path
sequence- Producer sends an event with stable event ID and request ID.
- Gateway authenticates, validates, and writes to
ingest. - Gateway returns
202after queue acceptance. - A consumer validates the event and writes the warehouse.
- Lookup and freshness expose later state; they are not part of acceptance.
Failure and recovery boundaries
riskConsumer slowdown
Lag and queue depth rise.
Queue saturation
The single buffer stops accepting.
Gateway overload
Every producer blocks or receives 503.
Adding one consumer replica is the safe local recovery control. Because every producer shares the queue, current recovery is also shared.
Runtime placement
deploymentThe gateway and ingest-consumer run in namespace ingest on prod-ingest; staging mirrors the namespace on stage-ingest. Replica changes are the only scaling control operators own.
Trust and data boundaries
security- The gateway terminates producer identity and enforces the audience claim.
- Event bodies remain opaque to routing; domain validation belongs to gateway schema and consumers.
- Queue and warehouse credentials are runtime secrets, never document content.
- The proposed dispatcher inherits gateway identity and adds no body store.