24 lines
1.7 KiB
Markdown
24 lines
1.7 KiB
Markdown
# LSN-0028: Converging to a Single Atomic Telemetry Source
|
|
|
|
## Context
|
|
Initial implementation of the Host Debug Overlay (DEC-0007) maintained legacy fields (`telemetry_current`, `telemetry_last`) alongside the new `AtomicTelemetry` for safety and backward compatibility. This resulted in redundant code and synchronization complexity in the core VM loop.
|
|
|
|
## Problem
|
|
Maintaining two sources of truth for telemetry (frame-based and atomic-based) is a form of technical debt. It requires updating both systems, increases memory footprint in the `VirtualMachineRuntime`, and creates ambiguity about which data is more "accurate" or "current."
|
|
|
|
## Lesson
|
|
1. **Atomics are sufficient:** A well-designed atomic structure with a `snapshot()` method can fulfill all needs, from real-time high-frequency inspection to deterministic frame-end certification.
|
|
2. **Push-based over Pull-based:** By having the VM "push" updates to atomic counters, the Host can consume them at its own pace without ever locking the execution thread.
|
|
3. **Purity through snapshots:** For processes that require a stable view of a frame (like Certification), capturing an atomic snapshot at the exact logical end of the frame is as precise as maintaining a separate buffered structure.
|
|
|
|
## Impact
|
|
- **Simpler Code:** Removal of legacy fields reduced the complexity of `tick.rs` and `lifecycle.rs`.
|
|
- **Better Performance:** Avoids redundant data copies and struct initializations per frame.
|
|
- **Architectural Clarity:** All diagnostic tools (HUD, Debugger, CLI, Certifier) now converge on the same data source.
|
|
|
|
## References
|
|
- DSC-0023 ([PERF] Full Migration to Atomic Telemetry)
|
|
- DEC-0008 (Full Migration Decision)
|
|
- PLN-0007 (Migration Plan)
|
|
- DEC-0007 (Overlay Isolation)
|