prometeu-runtime/discussion/lessons/DSC-0023-perf-full-migration-to-atomic-telemetry/LSN-0028-converging-to-single-atomic-telemetry-source.md

1.7 KiB

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)