# Signals Router Transport ## Module Signals ## Status IMPLEMENTED ## Description Event routing transport layer for signals enabling alternative message delivery paths beyond Redis, supporting pluggable transport backends for fact propagation. ## Implementation Details - **Modules**: `src/Signals/StellaOps.Signals/Services/`, `src/Signals/StellaOps.Signals/Options/` - **Key Classes**: - `RouterEventsPublisher` (`src/Signals/StellaOps.Signals/Services/RouterEventsPublisher.cs`) - routes signal events via configurable transport backend - `RedisEventsPublisher` (`src/Signals/StellaOps.Signals/Services/RedisEventsPublisher.cs`) - Redis-based transport for signal event delivery - `MessagingEventsPublisher` (`src/Signals/StellaOps.Signals/Services/MessagingEventsPublisher.cs`) - messaging-based transport backend - `InMemoryEventsPublisher` (`src/Signals/StellaOps.Signals/Services/InMemoryEventsPublisher.cs`) - in-memory transport for testing - `NullEventsPublisher` (`src/Signals/StellaOps.Signals/Services/NullEventsPublisher.cs`) - no-op transport for disabled routing - `SignalsRouterEventsOptions` (`src/Signals/StellaOps.Signals/Options/SignalsRouterEventsOptions.cs`) - configuration for router transport selection - **Interfaces**: `IEventsPublisher` (`src/Signals/StellaOps.Signals/Services/IEventsPublisher.cs`) - **Source**: SPRINT_0143_0001_0001_signals.md ## E2E Test Plan - [ ] Configure `RouterEventsPublisher` with Redis transport and verify signal events are delivered - [ ] Switch transport to `MessagingEventsPublisher` and verify events are delivered via messaging backend - [ ] Verify `InMemoryEventsPublisher` captures events in memory for test assertions - [ ] Publish a reachability fact update and verify it is routed to subscribers via the configured transport - [ ] Verify transport selection via `SignalsRouterEventsOptions` configuration