947 B
ADR 0002: Keep Twisted Initially
Status
Proposed
Context
Twisted currently provides UDP transport, timers, and a single-threaded reactor boundary. Packet behaviour is subtle and production-proven.
Decision
Keep Twisted initially as a transport safety boundary; consider replacement only after it is a thin shell.
Rationale
Replacing the event loop and state model at the same time creates avoidable risk. Extracting the routing/subscription core first gives deterministic test coverage and clearer future migration options.
Consequences
FreeDMR 2 starts with evolutionary architecture work, not an event-loop rewrite. Twisted callbacks must remain non-blocking.
Compatibility
Current deployment and transport behaviour can remain familiar while the core model is extracted.
Testing Requirements
Deterministic core tests and UDP black-box tests must cover behaviour before any later Twisted replacement is considered.