Contexto
La operativa requiere WebSocket-first y performance budgets (DB/API/WS/dashboard) para no destruir edge; esto está descrito como target en documentación/contexto y en el propio repo. [cite:9]
Actualmente hay estructura de tests (tests/unit, tests/integration, tests/e2e) pero no hay evidencia aquí de un “performance test harness” reproducible ni SLOs operables (p99). [cite:11]
Objetivo
Definir y automatizar un baseline verificable de performance y reliability (latencia p50/p95/p99, WS reconnect, fill/reject) con benchmarks reproducibles en CI (al menos smoke/perf-lite) y guía local.
Evidencia
- Existe suite de tests y organización por capas en
tests/. [cite:11]
- Existe
Makefile para tareas de calidad (entrada natural para benchmarks). [cite:9]
Alcance
- DB: queries simples <10ms p99, aggregations <50ms p99 (definir queries canónicas y dataset mínimo).
- API: endpoints críticos <100ms p99 (health, orders, positions).
- WS: reconnect + message latency (simulada si no hay acceso real), con circuit breaker de desconexión.
Tareas
- Crear
scripts/bench/ con:
bench_db.py (queries canónicas, dataset pequeño)
bench_api.py (locust/k6 o pytest-benchmark)
bench_ws.py (simulación + reconexión)
- Añadir targets Makefile:
make bench y make bench-smoke.
- En CI: job opcional (manual/nightly) para
bench-smoke y publicación de resultados como artifact.
Criterios de aceptación
- Benchmarks ejecutables localmente y en CI.
- Umbrales p99 documentados y comprobados; CI falla si se exceden (al menos en smoke).
- Reporte generado con resultados y links a artifacts.
Prioridad
P1 (habilita producción robusta y evita regresiones)
Contexto
La operativa requiere WebSocket-first y performance budgets (DB/API/WS/dashboard) para no destruir edge; esto está descrito como target en documentación/contexto y en el propio repo. [cite:9]
Actualmente hay estructura de tests (
tests/unit,tests/integration,tests/e2e) pero no hay evidencia aquí de un “performance test harness” reproducible ni SLOs operables (p99). [cite:11]Objetivo
Definir y automatizar un baseline verificable de performance y reliability (latencia p50/p95/p99, WS reconnect, fill/reject) con benchmarks reproducibles en CI (al menos smoke/perf-lite) y guía local.
Evidencia
tests/. [cite:11]Makefilepara tareas de calidad (entrada natural para benchmarks). [cite:9]Alcance
Tareas
scripts/bench/con:bench_db.py(queries canónicas, dataset pequeño)bench_api.py(locust/k6 o pytest-benchmark)bench_ws.py(simulación + reconexión)make benchymake bench-smoke.bench-smokey publicación de resultados como artifact.Criterios de aceptación
Prioridad
P1 (habilita producción robusta y evita regresiones)