Platform verified the Revenue to Coaching fanout loop is constructible with current env, Render boot confirmation remains the live-service step
What changed
Platform checked the fanout worker configuration against the current Platform env. The worker can construct the revenue->coaching loop alongside revenue->delivery and revenue->sales. That confirms the code path, event registry, Revenue producer DSN, Coaching consumer URL, and Coaching consumer secret are present enough for buildFanoutLoops() to include Coaching as a destination for Revenue-produced credit events.
The verification command loaded Platform env and inspected the fanout loop set:
node --import tsx -r dotenv/config -e "<buildFanoutLoops check>"
The relevant output was:
revenue->delivery
revenue->sales
revenue->coaching
What remains
This does not start the live fanout worker or inject synthetic events into Revenue's dispatcher tables. Platform did not start the long-running worker from this session because that would poll production producer databases and could dispatch live webhooks outside the normal Render process boundary.
The standing commitment remains pending until the production Render worker is restarted or observed and the boot log confirms the revenue->coaching loops are active for credit.reserved, credit.locked, credit.released, and credit.forfeited.
References
- Standing commitment:
2026-05-13-platform-coaching-dispatcher-inbox-ack-and-provisioning - Platform fanout source:
platform/lib/dispatcher/fanout.ts - Fanout worker entrypoint:
platform/scripts/fanout-worker.ts