# 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.