Infraestructura
Esta página cubre las piezas de plataforma compartidas sobre las que corre el backend — el almacén de datos, la cola de trabajos en segundo plano, el límite de tasa y el logging que usa cada funcionalidad. Para las integraciones con servicios de terceros construidas encima de esto (S3, correo, SMS, push, analítica, LiveKit, etc.), consulta Servicios. Para cómo difieren los despliegues de local/development/production, consulta Entornos de despliegue.
Redis
Redis potencia varias funcionalidades en tiempo real:
| Uso | Detalles |
|---|---|
| Presencia en línea | setUserOnline(userId) con TTL de 5 minutos, renovado en cada heartbeat |
| Caché de chat | chat-cache.service.js almacena en caché los mensajes recientes y los metadatos de conversación |
| Caché de códigos SMS | Almacena los códigos OTP para verificación con TTL |
| Colas de BullMQ | Cola de trabajos del worker de notificaciones |
| Pub/Sub | pubsub.service.js potencia las suscripciones de GraphQL mediante pub/sub de Redis |
Límite de tasa
services/rate-limiter.service.js proporciona límite de tasa en memoria para acciones de administración y de la API. Los límites se definen en constants/RATE_LIMITS como pares { max, windowMs }. En producción, se recomienda una implementación respaldada por Redis para despliegues multi-instancia.
Logging
services/logger/ proporciona un logger estructurado centralizado usado en todos los servicios y managers. Niveles de log: debug, info, warn, error.
Resumen de variables de entorno
| Variable | Propósito |
|---|---|
REDIS_HOST / REDIS_PORT / REDIS_PASSWORD | Redis + BullMQ |
MAX_FAILED_LOGIN_ATTEMPTS | Umbral de bloqueo de administrador |
Consulta la página de Servicios para las variables de entorno específicas de S3, SES, SMS, analítica y LiveKit.