Tema: queues
-
Uso de arrendamientos (leases) con expiración para trabajos distribuidos
Proteger un trabajo reclamado frente a un worker anterior retrasado mediante comprobaciones de propiedad y un token de exclusión (fencing token) monótonamente creciente.
-
Enrutar las tareas envenenadas a una cola de mensajes muertos (dead-letter queue)
Separar las tareas que fallan de forma permanente de los reintentos transitorios, conservar diagnósticos seguros y convertir la repetición (replay) en una operación explícita y controlada.
-
SLI para colas y trabajos por lotes: antigüedad del mensaje más antiguo, frescura, cobertura y último éxito
Los servicios orientados a peticiones miden disponibilidad y latencia; las colas y los trabajos por lotes necesitan indicadores distintos: cuán antiguo es el elemento sin procesar más viejo, qué proporción de los datos es más reciente que un umbral, qué proporción de ejecuciones programadas se completó dentro de su ventana, y cuándo tuvo éxito el trabajo por última vez. Esta metodología los deriva de los SLI de canalización (pipeline) del SRE workbook.
-
Hacer inofensiva la entrega duplicada
Confirma en la misma transacción un marcador de deduplicación y el efecto previsto en la base de datos, y trata los efectos externos como un problema de consistencia aparte.
-
Envío fiable de correo transaccional: fila outbox, worker, reintentos y claves de idempotencia
No envíes el correo desde el manejador de la petición: registra el mensaje en la misma transacción que el evento de negocio, deja que un worker lo entregue, reintenta con backoff las respuestas transitorias (4yz) y los fallos de conexión, detente ante respuestas permanentes (5yz) y evita duplicados tras una caída con una clave de idempotencia por evento y un Message-ID estable.
Legible por máquina: JSON