SG0 · Administrator only
The only credential available carries full administrative authority. Every workflow inherits maximum blast radius. Incompatible with the principle that no component holds more authority than its task requires.
SG1 · Role-scoped
Credentials map to coarse roles. Better than SG0, but a workflow needing one field inherits everything that role can reach.
SG2 · Resource-scoped
Authority can be limited to specific resource types and operations. Sufficient for most guarded write designs.
SG3 · Field-scoped or tier-scoped
Authority can be limited to specific fields or disclosure tiers. Required where guarded disclosure must exclude access credentials or payment detail from model context.
R0 · No programmatic read
Data is reachable only through a user interface. Any integration means scraping or duplication, both of which violate the integration-boundary principle.
R1 · Batch or file extract
Scheduled export only. Imposes a staleness budget equal to the export interval on every dependent workflow.
R2 · On-demand API, current state
Current state readable on request. Sufficient for most conversational reads, insufficient for reconstruction after an incident.
R3 · On-demand API with history
Current state plus historical or point-in-time reads. Required where the reliability checklist calls for reconstructing what a workflow saw at decision time.
W0 · No write capability
The guarded write pattern cannot execute. Any workflow reaching this system must terminate in a human queue with an authoritative handoff record.
W1 · Constrained or queued write
Writes accepted for a narrow set of operations, or accepted asynchronously without a synchronous authoritative receipt. Workflow must treat submission and confirmation as separate events.
W2 · Transactional write, no idempotency
Synchronous writes with a receipt, but a retried request may duplicate. The orchestration layer must supply de-duplication using a natural key, and must define behavior on ambiguous timeout.
W3 · Transactional write, idempotent
Synchronous writes with a receipt and a client-supplied idempotency key honoured across retries. The only tier where the guarded write pattern executes safely without compensating logic.
EV0 · No event support
State change is invisible until something asks. Every dependent workflow carries a staleness budget that must be declared.
EV1 · Polling only
Change is discoverable by repeated read. Cost and latency scale with property count. Declare the interval and the resulting staleness.
EV2 · Webhook or stream, no replay
Events are pushed but cannot be re-requested. A consumer outage produces permanent divergence that only a human reconciliation will find. This is the most common and most underestimated gap.
EV3 · Webhook or stream with replay and versioned schema
Events are pushed, recoverable over a stated window, and carry a versioned schema. The only tier at which the check-in fan-out pattern is operable without manual reconciliation.
DG0 · None stated or best effort
Treat as lossy. Any workflow depending on it needs a periodic reconciliation read.
DG1 · At-most-once
Events may be lost but never duplicated. Requires reconciliation. Rarely the right choice for hospitality state changes.
DG2 · At-least-once
Events may repeat but are not lost. The correct target. Requires that every consumer be idempotent. Exactly-once should not be claimed or relied on across a vendor boundary.
OG0 · None
Events for the same reservation may arrive out of order. Consumers must use event time rather than receipt time and must tolerate a later event arriving first.
OG1 · Per resource key
Order preserved within a reservation, stay, or unit. Sufficient for hospitality workflows and the realistic target.
OG2 · Global
Total order across all events. Rarely offered, rarely needed, and usually a scalability liability.
SY0 · Manual or unscheduled
A person exports or re-enters the data. Staleness is unbounded and unknowable, so no answer built on it can state its own age.
SY1 · Scheduled batch or crawl
Refreshed on a stated interval. Staleness is bounded by the interval, which must be declared alongside it. Acceptable for policy and procedure content, not for availability or rates.
SY2 · On-request read, cached
Read when asked, behind a short cache. Staleness is bounded by the cache lifetime. The default for structured facts in a uniform estate.
SY3 · Event on change, with replay
The source pushes a change and the change is recoverable over a stated window. The only mechanism that supports an answer knowing it is current.