Надёжная доставка

О теме

Outbox, dual write, DLQ и идемпотентный consumer — чтобы сообщение не потерялось и не удвоило оплату.

Лекции

Надёжная доставка
Poison, DLQ, retry и идемпотентный consumer

Poison message бесконечно валит воркера: в Kafka стопорит партицию на одном offset, в Rabbit крутится requeue. Retry с backoff и лимитом, затем DLQ. Консьюмер без идемпотентности удваивает деньги на каждом ретрае.

Надёжная доставка
Transactional outbox и dual write

Dual write — это commit в базу и publish в брокер без общей транзакции: можно получить заказ без события или событие без заказа. Outbox пишет событие в той же транзакции, что и данные; публикатор читает таблицу или WAL после commit.