Skip to content

P1: Baseline de performance/reliability con benchmarks reproducibles (DB/API/WS) + CI artifacts #6

Description

@juankaspain

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)

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions