You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
FreeDMR/docs/freedmr-2/adr/0011-process-actor-model-ov...

1.0 KiB

ADR 0011: Process/Actor Model Over No-GIL Threading

Status

Proposed

Context

FreeDMR may need more concurrency for reporting, export, analysis, or future scaling. Shared mutable routing state is risky.

Decision

If FreeDMR 2 needs concurrency beyond the reactor, prefer explicit parent/child or actor-style ownership boundaries over shared-memory no-GIL threading for routing state.

Rationale

Single-owner state and explicit messages are easier for sysops and contributors to reason about. They reduce race risks in delay-sensitive packet handling.

Consequences

Some features may require serialization and message protocols between processes. This is clearer than shared locks around routing dictionaries.

Compatibility

Twisted can remain the initial transport shell while workers handle reporting/export or expensive tasks.

Testing Requirements

Tests must cover worker failure, queue overflow, restart behaviour, message ordering where required, and packet handling continuing when a non-critical worker fails.

Powered by TurnKey Linux.