Publish/Subscribe over a typed bus
Strategy evaluation ran once per subscriber. The same indicator math executed N times over identical market data, and there was no single place where a trading signal existed as a fact — nothing to audit, and no way to fan one decision out to several accounts.
Producers publish an immutable signal to a bus and never reference consumers. The bus is declared as a Protocol with an in-process implementation and a Redis implementation selected by environment variable, so moving from one process to many is configuration rather than redesign.
signal-to-alpha · backend/app/v2/shared/bus.pySignalBus Protocol (:29), InProcessBus (:58), RedisBus (:128), make_bus() factory (:148), Subscription handle (:42)signal-to-alpha · backend/app/v2/distributor/distributor.py:69Distributor fans one immutable signal to N subscribers