[GH#470] Post-MVP: telemetry/domain/TelemetryFrame ungenutzt im Hot-Path (ferne technische Schuld) #18

Open
opened 2026-05-19 22:15:35 +02:00 by Max · 0 comments
Owner

Migrated from GitHub #470
Originally created by @Bio1988 on 2026-05-08T19:26:34Z


Summary

telemetry/domain/frame.go definiert ein sauberes TelemetryFrame mit typisierten Units (units.Liters, units.Meters, units.Seconds), aber der gesamte Live-Hot-Path läuft über model.TelemetrySnapshot — ein flaches float64/string-DTO mit 100+ Feldern ohne Typisierung.

Der Mapper telemetry/infrastructure/iracing_mapper.go existiert, wird aber in der Produktion nicht aufgerufen. Das telemetry-Bounded-Context ist de facto nur Dokumentation.

Aktueller Datenfluss

irsdk.dll -> irsdkadapter -> model.SDKEvent { model.TelemetrySnapshot }
-> runtime.handleFrame() -> strategy/field/recording/audio

Ziel-Datenfluss

irsdk.dll -> irsdkadapter -> telemetry.InjestPort -> TelemetryFrame
-> runtime.handleFrame() -> strategy/field/recording/audio (typed)

Umfang der Änderung

  1. Runtime verwendet telemetry.InjestPort statt direktem model.TelemetrySnapshot
  2. Domain-Kontexte (strategy, field) akzeptieren TelemetryFrame oder typisierte Subsets
  3. model.TelemetrySnapshot wird deprecated markiert
  4. Kein Breaking Change zum Wails-Frontend (OverlayState-Adaptierung bleibt bestehen)

Risiko

  • Großes Refactoring mit potenziellen Regressionen
  • Betrifft 10+ Dateien (runtime, strategy, field, audio, recording)
  • Sollte NACH MVP-Release erfolgen (0.0.2), nicht davor

Empfehlung

Als Post-MVP 0.0.2 taggen. Kein funktionaler Impact, nur Code-Qualität/Typsicherheit. Aber ohne diese Änderung bleibt das telemetry-Bounded-Context toter Code.

Affected Files

  • internal/runtime/service.go
  • internal/irsdkadapter/adapter.go
  • telemetry/domain/frame.go
  • telemetry/infrastructure/iracing_mapper.go
  • strategy/interfaces/legacy.go
  • field/application/field_state.go
Migrated from [GitHub #470](https://github.com/Bio1988/strategy-desktop/issues/470) Originally created by @Bio1988 on 2026-05-08T19:26:34Z --- ## Summary telemetry/domain/frame.go definiert ein sauberes TelemetryFrame mit typisierten Units (units.Liters, units.Meters, units.Seconds), aber der gesamte Live-Hot-Path läuft über model.TelemetrySnapshot — ein flaches float64/string-DTO mit 100+ Feldern ohne Typisierung. Der Mapper telemetry/infrastructure/iracing_mapper.go existiert, wird aber in der Produktion nicht aufgerufen. Das telemetry-Bounded-Context ist de facto nur Dokumentation. ## Aktueller Datenfluss irsdk.dll -> irsdkadapter -> model.SDKEvent { model.TelemetrySnapshot } -> runtime.handleFrame() -> strategy/field/recording/audio ## Ziel-Datenfluss irsdk.dll -> irsdkadapter -> telemetry.InjestPort -> TelemetryFrame -> runtime.handleFrame() -> strategy/field/recording/audio (typed) ## Umfang der Änderung 1. Runtime verwendet telemetry.InjestPort statt direktem model.TelemetrySnapshot 2. Domain-Kontexte (strategy, field) akzeptieren TelemetryFrame oder typisierte Subsets 3. model.TelemetrySnapshot wird deprecated markiert 4. Kein Breaking Change zum Wails-Frontend (OverlayState-Adaptierung bleibt bestehen) ## Risiko - Großes Refactoring mit potenziellen Regressionen - Betrifft 10+ Dateien (runtime, strategy, field, audio, recording) - Sollte NACH MVP-Release erfolgen (0.0.2), nicht davor ## Empfehlung Als Post-MVP 0.0.2 taggen. Kein funktionaler Impact, nur Code-Qualität/Typsicherheit. Aber ohne diese Änderung bleibt das telemetry-Bounded-Context toter Code. ## Affected Files - internal/runtime/service.go - internal/irsdkadapter/adapter.go - telemetry/domain/frame.go - telemetry/infrastructure/iracing_mapper.go - strategy/interfaces/legacy.go - field/application/field_state.go
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Max/strategy-desktop#18
No description provided.