TradeFlowAI — Análisis de Latencia Crítica

Ingeniería de Sistemas en Tiempo Real · Hot Path Audit · Optimización p95/p99 · CULTIVA IA

P99 SLA ROTO 2026-06-18 · v1.0
P99 End-to-End (actual)
3.312 ms
Pico 08:00–10:00 UTC
→ Target: < 800 ms
Frescura Orderbook (max)
4.1 s
Umbral aceptable: ≤ 500 ms
→ Target: ≤ 300 ms
Throughput Workers (pico)
30%
Caída por backpressure Redis
→ Target: > 90 %
Mapa del Hot Path — Tick → Estado Visible
Provider WS
p99 310 ms
Ingest Worker
p99 390 ms ⚠
Redis Cache
p99 22 ms
API Gateway
p99 620 ms
ML Inference
p99 1.150 ms ⚠
Browser Render
p99 820 ms ⚠
Estado Visible
p99 ~3.312 ms
Segmentos críticos: ML Inference (1.150 ms), Browser Render (820 ms), Ingest Worker (390 ms), API Gateway SSE (620 ms). El hot path suma 3× el SLA. Foco en ML y render primero.
Latencia por Segmento (ms)
Segmento p50 p95 p99 Estado
Provider API ws 48 120 310 OK
Ingest Worker → Redis 12 45 390 CRÍTICO
Redis → API Gateway 3 8 22 OK
API Gateway → SSE 35 180 620 ALERTA
ML Model Inference 90 340 1.150 CRÍTICO
Browser Render (React) 55 290 820 CRÍTICO
End-to-End 243 983 3.312 SLA ROTO
Contribución p99 al Total
ML Inference
1.150 ms
Browser Render
820 ms
API Gateway SSE
620 ms
Ingest Worker
390 ms
Provider WS
310 ms
Redis
22 ms
Regla 80/20: ML Inference + Browser Render suman el 59 % de la latencia p99. Resolver estos 2 segmentos dejaría el sistema en ~1.342 ms p99 antes de otras optimizaciones.
Plan de Optimización — Orden de Impacto
Mejora Proyectada p99 End-to-End
Antes (actual) 3.312 ms
Después (optimizaciones 1–5) ~512 ms
P99 ACTUAL
3.312 ms
4.1× sobre SLA
P99 PROYECTADO
~512 ms
✓ Por debajo del SLA 800ms
Reducción acumulada estimada: Ops 1+2 (ML cache/warm): −1.850 ms · Op 3 (render): −600 ms · Op 4 (backpressure): −350 ms · Op 5 (región): −500 ms · Subtotal = −3.300 ms → p99 neto ~512 ms con margen de seguridad al SLA.
Canaries de Verificación
Orderbook Freshness Age
Actual: 4.1 s · Umbral alerta: 300 ms · Crítico: 1 s
FALLO
ML Inference Cold-Start Rate
1.2 s en arranque de pod · Target: 0 ms con warm pool
FALLO
Redis Queue Depth (backpressure)
Pico: ~800 jobs · Umbral: 500 jobs
ALERTA
SSE Payload Size / evento
Actual: ~12 KB (full state) · Target: <800 B (delta patch)
ALERTA
Redis Hit Rate (señales)
Actual: 87 % · Target: > 95 %
OK
Provider WS Reconnects / hora
Actual: 2–3 · Target: < 5 · Picos aceptables
OK
Kill-Switch de Ejecución
Estado: no implementado · REQUERIDO antes de prod
PENDIENTE
Guardrails — No cruzar estas líneas en la optimización
NO saltarse validación
No eliminar checks de integridad del orderbook para ganar ms. Stale data es peor que latencia alta.
NO ocultar datos stale
Cache hits rápidos con datos viejos deben exponer X-Signal-Age. El browser debe mostrar el indicador de frescura siempre.
NO afirmar ms sin medición
Cada claim de mejora debe tener un readback: HTTP timing, Prometheus gauge, o log de latencia real. Sin datos = sin claim.
Kill-switch ANTES de prod
El módulo de ejecución simulada NO puede activarse sin un gate explícito de aprobación. Implementar flag en Fly.io secrets.