IDA-02 Layered Architecture
1. Architecture View
Target layered model:
- Application/API layer
- Session control layer (hailing, lifecycle, reconnect)
- State machine layer (duplex mode transitions)
- COP-P layer (FOP-P, FARM-P, coordinator)
- SPDU layer (encode/decode, directives, PLCW)
- Frame layer (P/U frame handling, QoS, versioning)
- Physical channel abstraction (mock + TCP/UDP)
Architecture rationale:
- This layering isolates concerns so protocol correctness can be verified independently from transport and application concerns.
- It also enables deterministic unit testing at lower layers while preserving realistic integration paths at higher layers.
2. Module Decomposition
For each module record:
- Purpose
- Inputs/outputs
- Deterministic behavior constraints
- Failure modes and error signaling
- Performance-critical paths
3. Data Flow
Document:
- Tx path from application payload to wire frame
- Rx path from wire frame to protocol events
- State update points and sequencing dependencies
Data-flow rationale (fill this section):
- Explain why each state update point is placed where it is.
- Explain how sequencing prevents race conditions and replay/ordering defects.
4. Concurrency Model
Define:
- Session concurrency strategy
- Synchronization boundaries
- Ownership/lifetime model for buffers and state
- Deadlock and race prevention strategy
- Pre-allocation policy
- Buffer reuse approach
- Avoided patterns (runtime allocation in hot paths)
- Measurement method for per-session overhead
Performance rationale (fill this section):
- Explain why chosen allocation and reuse strategy is expected to satisfy <50 KB/session.
- Explain why hot-path design is expected to satisfy <1 ms latency objectives.
6. Architecture Decisions (ADR links)
List key ADRs:
- Language and runtime choice
- Serialization strategy
- State transition representation
- Interface abstraction trade-offs
⬆️ Back to Top ⬆️