3.3 KiB
3.3 KiB
TASK-021-snapshot-persistence-bootstrap
Goal
Preparar una persistencia local minima para snapshots de servidores en el backend Python, de forma que los datos recogidos durante las pruebas con HLL actual puedan guardarse y reutilizarse para consultas historicas posteriores.
Context
El proyecto ya dispone de plan de ingesta, modelo logico de almacenamiento y bootstrap de colector. El siguiente paso es dejar de depender exclusivamente de estructuras temporales o payloads controlados y empezar a guardar snapshots de forma persistente para validar el circuito real de estadisticas.
Steps
- Revisar la documentacion actual de ingesta, esquema logico y colector.
- Definir una estrategia de persistencia local minima adecuada para esta fase de pruebas.
- Implementar una capa pequena de persistencia alineada con las entidades ya definidas logicamente:
- game_sources
- servers
- server_snapshots
- Mantener la implementacion simple, reutilizable y desacoplada de una base de datos de produccion futura.
- Hacer que el colector pueda guardar snapshots reales o controlados en esa persistencia local.
- Documentar como inicializar y usar esta persistencia en desarrollo.
- No introducir todavia consultas historicas complejas ni visualizacion en frontend.
- Mantener el alcance centrado en almacenamiento basico funcional.
Files to Read First
- AGENTS.md
- ai/repo-context.md
- ai/architecture-index.md
- docs/current-hll-data-ingestion-plan.md
- docs/stats-database-schema-foundation.md
- backend/README.md
- backend/app/init.py
- backend/app/config.py
- backend/app/collector.py
- backend/app/normalizers.py
- backend/app/snapshots.py
Expected Files to Modify
- backend/README.md
- backend/app/init.py
- backend/app/config.py
- backend/app/collector.py
- backend/app/snapshots.py
- opcionalmente archivos nuevos dentro de backend/app/ si mejoran la separacion de persistencia, por ejemplo:
- backend/app/storage.py
- backend/app/repository.py
Constraints
- No implementar todavia integraciones reales complejas de terceros.
- No tocar frontend.
- No anadir una infraestructura de produccion sobredimensionada.
- No hacer cambios destructivos.
- Mantener la persistencia simple y util para desarrollo local.
Validation
- El backend puede guardar snapshots de servidores en una persistencia local real.
- La persistencia sigue el modelo logico documentado.
- La documentacion explica como usar esta base minima en local.
- El resultado prepara el terreno para consultas historicas inmediatas.
Change Budget
- Preferir menos de 7 archivos modificados o creados.
- Preferir menos de 260 lineas cambiadas.
Outcome
- Se anadio
backend/app/storage.pycon una persistencia SQLite minima basada en libreria estandar. - El colector puede persistir snapshots controlados en
game_sources,serversyserver_snapshots. - La configuracion local expone
HLL_BACKEND_STORAGE_PATHpara cambiar la ruta del archivo SQLite sin fijar una decision de produccion. backend/README.mddocumenta la inicializacion y uso de la persistencia local.
Validation Result
- Ejecutado:
python -m app.collector - Resultado: lote de 3 snapshots persistido correctamente en SQLite local de desarrollo.
Decision Notes
- Se eligio SQLite porque cubre persistencia local real con dependencias cero y mantiene abierta la migracion futura a otra tecnologia de almacenamiento.