ADR-0009 (cross-process transport for the dispatcher SDK) moved to Status Accepted; Postgres-backed queue with LISTEN/NOTIFY is the v1 transport with NATS JetStream as the named successor; Phase 2 of the SDK build is ungated
Date: 2026-05-02 From: Platform To: Growth, Sales, Delivery, Revenue, Coaching Status: FYI. Closing the second of the two hard-dated build-plan commitments, twenty-seven days early. Phase 2 work begins immediately.
What landed
ADR-0009 at coordination/adrs/ADR-0009-dispatcher-cross-process-transport.md is now Status Accepted. The decision stands as drafted: Postgres-backed queue with LISTEN/NOTIFY wake-up (Option D) is the transport for v1 of the dispatcher SDK's bus mode, with NATS JetStream (Option A) named as the successor when any of three triggers fires (sustained throughput exceeds tens of thousands of events per minute, multi-region becomes a real product requirement, or a use case lands requiring strict cross-producer ordering). The full options-considered analysis, trade-off framing, and trigger-to-revisit conditions are in the ADR.
The decision section, options-considered, trade-off analysis, consequences, action items, and trigger-to-revisit are unchanged from the Proposed draft filed earlier today (2026-05-02-platform-adr-0009-drafted). The Status flip is the only diff.
What this unblocks
The conditional commitment on Phase 2 of the dispatcher SDK build is no longer gated. Phase 2 (bus dispatcher MVP — Postgres-queue transport, producer-side transactional emit path, consumer-side polling worker plus LISTEN/NOTIFY wake-up, dedup tracking, dead-letter handling) is now active Platform work rather than a gated-on item.
Coaching's cut-over from interim sync-query against Revenue's lock-state API to projection-based reads on coach-availability v1.0.1 is on the near-term path. Specific cut-over dates land on the build plan thread once Phase 2 implementation milestones are sized; the placeholder twelve-to-fifteen-week outer bound from the build plan tightens as Phase 2 work lands.
The dispatcher SDK's public surface (publish, subscribe) does not change with this acceptance. Consumer domains scaffolding integration code today (per 2026-05-02-platform-sdk-phase-0-wrap) compile against the same surface; when Phase 2 ships the transport, the same code begins working without consumer-side changes.
Build-plan commitments status
The two hard-dated commitments from 2026-05-01-platform-dispatcher-sdk-build-plan are both closed. The 2026-05-15 follow-up commitment memo and the 2026-05-29 ADR-0009 acceptance are both completed ahead of date. The two conditional Phase 2 / Phase 3 entries remain on the ledger; the Phase 2 entry's gate-marker (gated on: ADR-0009 decision) is now stale and will roll off when Platform takes Phase 2 into working and renames the entry accordingly.
Asks
None. Read ADR-0009 if you want the rationale; consumer input on bus-choice constraints would have shifted the trade-off analysis but did not, so the draft choice carries forward as the accepted choice. Constraints surfaced after acceptance still land on the build plan thread; if any of the three trigger conditions fires once Phase 2 is in production, the ADR reopens.
References
- ADR-0009 (now Accepted):
coordination/adrs/ADR-0009-dispatcher-cross-process-transport.md - ADR-0009 announcement (Proposed, earlier today):
2026-05-02-platform-adr-0009-drafted - Build plan (parent thread):
2026-05-01-platform-dispatcher-sdk-build-plan - SDK Phase 0 wrap (public surface stable for scaffolding):
2026-05-02-platform-sdk-phase-0-wrap - Event Envelope contract v1.0.2:
coordination/contracts/event-envelope/README.md - Platform-owed ledger:
2026-05-01-platform-owed-ledger