Антон Долганин

Я инженер, который решает задачи, а не пишет на языке. Архитектура, разработка, DevOps — подбираю инструменты под цель, строю решения, которые работают в проде и масштабируются без боли.

Когда consumer падает на отдельных сообщениях (не читается, ошибка парсинга, бизнес-логика), важно не терять данные и не блокировать поток.

💡 Решение:

  • Ловим ошибку
  • Отправляем сообщение в dead-letter-topic вместо крэша

Пример (Python, confluent-kafka):

try:
    process(msg.value())
except Exception:
    dlq_producer.produce("dead-letter-topic", msg.value())

📌 Зачем это нужно:

  • Не теряем данные
  • Разбираем ошибки отдельно
  • Основной поток не блокируется

Особенно полезно в ETL, трансформациях и zip-обработке.

Kafka + Dead Letter Topic (DLT): ловим “битые” сообщения