Política de Performance y Capacidad
Este documento define los umbrales mínimos de desempeño y el criterio de escalamiento por servicio.
1. Supuestos base de carga
| Escenario | Valor |
|---|
| Usuarios concurrentes pico | 2,000 |
| RPS pico total | 350 |
| Distribución pico | 35% búsqueda, 25% auth, 20% agenda, 10% catálogos, 10% otros |
| Ventana pico | 08:00-11:00 y 18:00-21:00 |
2. Objetivos técnicos por servicio
| Servicio | p95 objetivo | Error rate objetivo | Saturación objetivo |
|---|
auth-service | < 300ms | < 1% | CPU < 70% |
search-service | < 300ms | < 1% | CPU < 70%, cache hit > 80% |
appointments-service | < 400ms | < 1% | lock contention < 5% |
availability-service | < 300ms | < 1% | DB slow queries < 2% |
notification-service | < 2000ms | < 2% | dlq_depth = 0 sostenido |
catalog-service | < 250ms lecturas | < 1% | cache invalidation < 500ms |
3. Criterios de escalado
| Recurso | Trigger scale-out | Trigger scale-in | Cooldown |
|---|
| ECS servicio API | CPU > 65% o p95 fuera de SLO 5 min | CPU < 35% por 15 min | 5 min |
| Worker notificaciones | queue_depth > 100 por 3 min | queue_depth < 20 por 10 min | 5 min |
| Redis | evictions > 0 o memory > 75% | memory < 55% por 30 min | 15 min |
| RDS read replicas | CPU reader > 70% por 10 min | CPU reader < 40% por 30 min | 15 min |
| Endpoint | Presupuesto total | API layer | DB/cache | Integraciones |
|---|
POST /auth/login | 300 ms | 80 ms | 170 ms | 50 ms |
GET /search/doctors | 300 ms | 60 ms | 220 ms | 20 ms |
POST /appointments | 400 ms | 90 ms | 260 ms | 50 ms |
POST /notifications/send | 2000 ms | 100 ms | 100 ms | 1800 ms |
5. Pruebas de capacidad obligatorias
- Smoke perf por PR crítico: 5 min, carga media.
- Load test semanal en staging: 30 min, carga objetivo.
- Stress test mensual: hasta 2x pico esperado.
- Soak test mensual: 4 h con carga estable.