Evita que los mensajes tóxicos congelen tu pipeline: Reintentos y DLQ.
Día 08 de la serie técnica WKafka Open Source.
Un único JSON malformado jamás debería tumbar un consumidor de Kafka en producción. WKafka aísla los mensajes tóxicos en una Dead Letter Queue automáticamente.
Los Problemas Reales
- Un único payload corrupto congelando la partición en bucles de crash infinitos
- Tormentas de reintentos descontroladas saturando bases de datos aguas abajo
- Pérdida de mensajes fallidos sin trazas forenses ni pistas para depurar
La Implementación
@kafka.consumer(
topic="invoices",
max_retries=3,
retry_backoff=2.0,
dlq_topic="invoices.DLQ"
)
def process_invoice(msg):
# If this fails 3 times, message automatically moves to invoices.DLQ
parse_and_bill(msg.value)
Por qué esta arquitectura gana
- Dead Letter Queue: Enruta automáticamente los fallos permanentes a topic.DLQ.
- Backoff Exponencial: Intervalos de reintento suaves evitan tormentas de peticiones.
- Cero Bloqueos: Los mensajes sanos continúan procesándose mientras el error se aísla.
Verificación y Estado
Probado y verificado contra clusters reales de Apache Kafka (ver EXAMPLES_STATUS.md en el repositorio). Compatible con Python 3.9 a 3.14 con tipado estricto mypy.
Top comments (0)