The gateway is the RPC entry point to SubmitQueue. It accepts Land, Cancel,
Status, and Ping calls, validates them at the edge, and hands work off to the
orchestrator pipeline asynchronously via the message queue.
The gateway is the sole owner of the request log — the only service that both writes and reads it. No other service persists or reads request log entries:
- For statuses it produces synchronously (
acceptedonLand,cancellingonCancel), the gateway writes directly to storage so the entry is visible the moment the RPC returns. - For statuses produced downstream, the orchestrator only publishes entries to
the
logtopic viasubmitqueue/core/request.PublishLog. The gateway runs a consumer that drains thelogtopic and persists each entry to storage.
Reads are likewise gateway-only: the Status and Cancel RPCs read the request
log directly from storage. The orchestrator only publishes log entries and
never touches the request log store.
This keeps a single service responsible for the request log while letting the orchestrator remain free of storage writes for it.