2.2 KiB
2.2 KiB
TASK-102-rcon-historical-competitive-read-model-primary
Goal
Construir una capa histórica competitiva primaria basada en persistencia RCON, o en una materialización derivada de ella, suficiente para soportar el producto histórico sin depender de public-scoreboard como writer principal.
Context
Hoy la repo ya tiene:
- captura histórica prospectiva RCON
- read model histórico RCON mínimo
- histórico clásico por public-scoreboard
- player-events V2
- Elo/MMR mensual Pero el writer path histórico competitivo sigue dependiendo del archivo clásico importado por scoreboard.
Steps
- Auditar:
backend/app/rcon_historical_storage.pybackend/app/rcon_historical_read_model.pybackend/app/historical_storage.pybackend/app/player_event_storage.pybackend/app/elo_mmr_storage.pybackend/app/payloads.py
- Definir un modelo primario histórico competitivo RCON-backed:
- directo sobre persistencia RCON, o
- mediante tablas/materializaciones derivadas generadas desde RCON
- Ese modelo debe cubrir como prioridad:
- recent activity / recent matches
- historical server summary
- métricas mínimas competitivas reutilizables por MVP/Elo
- Si hacen falta tablas/materialized snapshots nuevas, crearlas.
- Dejar capabilities explícitas por dominio:
- exact
- approximate
- partial
- unavailable
- Documentar claramente qué parte del histórico ya puede dejar de depender del import clásico.
- Mantener scoreboard como fallback solo para lo que todavía no esté cubierto.
Constraints
- No romper la persistencia RCON ya existente.
- No eliminar el histórico clásico todavía.
- No inventar granularidad que la captura RCON no tenga.
- No degradar el request path HTTP innecesariamente.
Validation
- Existe una capa histórica competitiva primaria RCON-backed real.
- Al menos summary/recent activity dejan de depender del pipeline clásico como principal.
- Las capabilities quedan visibles y honestas.
- La repo queda consistente.
Expected Files
- archivos backend nuevos o modificados bajo
backend/app/para read model/materialización histórica RCON docs/elo-mmr-monthly-ranking-design.mdsi hace faltabackend/README.md