evented backend with single ordered publication path master
flip backend from Io.Threaded to Io.Evented. frame workers run on a dedicated Io.Threaded (pool_io) for CPU-heavy decode/validate, then hand off to the broadcaster fiber via an MPSC ring buffer. key design: one publication path for all relay-sequenced events. workers, subscriber inline, and admin all use the same pattern: persist_order spinlock → dp.persist → resequence → queue.push. the broadcaster fiber drains FIFO (= seq order) and fans out. persist_order is an atomic spinlock (not Io.Mutex) so both Threaded workers and Evented admin can participate — Io.Mutex futex implementations are incompatible across domains. - DiskPersist initialized with pool_io (workers are its callers) - BroadcastQueue: lossless spin-wait push (matches Indigo semantics) - admin ban: same ordered path as workers, no direct broadcast() - pool_io wired to HttpContext for future cross-domain use Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>