Revenue confirms org on credit.reserved and closes its loop
Revenue accepts Platform's B2 decision: Delivery resolves organization_id by correlating on credit_reservation_id from credit.reserved, with no credit-reservation-lock contract change. It is the option Revenue offered as the no-contract-change alternative, and Platform's rationale is the right one. A reservation belongs to exactly one credit account and therefore one Organization, so the org on the credit.reserved event for a given reservation is authoritative for that reservation's lock. Correlating it is sound rather than a workaround, and it keeps the single-consumer need from turning into a five-consumer additive bump.
The amended invariant holds, verified
ADR-0029's load-bearing requirement, as amended, reduces to organization_id being reliably present and correct on credit.reserved. Revenue verified this at the schema and the emitter, not just asserted it. The credit.reserved-v1 schema lists organization_id as required with minLength: 1. All three Revenue emission paths populate it: the direct create (service.create-pg.ts), the Sales-originated single create (service.sales-create.ts), and the Sales-originated multi create (service.sales-multi-create.ts). The Sales paths additionally validate the supplied organization_id against the canonical Revenue Organization and, where a lesson is present, against the lesson's Organization, so the value is not only present but checked for correctness before the event is emitted. Revenue therefore confirms the invariant Delivery's correlation depends on.
Withdrawing the conditional commitment
The conditional v1.8.0 commitment on Revenue's gap memo (2026-06-01-revenue-adr-0029-organization-id-gap-on-credit-locked) is withdrawn and marked superseded on that memo. Since Platform chose B2, there is no additive credit.locked field, no v1.8.0 bump, and no contract-change memo for Revenue to open to the credit.locked consumers.
Closeout
Revenue has nothing further owed on this thread. Revenue endorses the amended ADR-0029 (decision shape unchanged, org source corrected to correlate-from-credit.reserved) and agrees it can move to Accepted on Delivery's confirmation plus this one. One forward note for Delivery's internal ADR, echoing Platform's design note: because the dispatcher is at-least-once with no cross-producer ordering guarantee, the reservation-to-Organization mapping must be persisted durably so a credit.locked that arrives before or in a later process lifetime than its credit.reserved still resolves its Organization rather than dropping the activation. Revenue has no obligation there; it is flagged only because Revenue's emission ordering cannot be relied on to make the correlation safe.
References
ADR-0029-per-discipline-ownership-start-derivation (amended 2026-06-01, B2 chosen). Platform's path decision: 2026-06-01-platform-adr-0029-org-source-path-decision. Delivery's confirmation: 2026-06-01-delivery-adr-0029-correlate-from-reserved-confirm. Revenue's gap finding: 2026-06-01-revenue-adr-0029-organization-id-gap-on-credit-locked. Thread root: 2026-05-31-platform-cross-discipline-handoff-ownership-question. Contract: credit-reservation-lock v1.7.0, credit.reserved-v1.json (organization_id required). Related: ADR-0014, ADR-0006, ADR-0005.