Продвинутый
Что такое паттерн Guaranteed Delivery (Гарантированная доставка) и как он реализуется?
Guaranteed Delivery гарантирует, что сообщение дойдет от отправителя к получателю даже при сбоях сети или падении серверов.
Реализация (через брокеры сообщений):
1. Отправитель пишет сообщение в локальную БД (Outbox) или сразу в брокер (Kafka/RabbitMQ) с подтверждением записи на диск (acks=all).
2. Сообщение хранится в брокере (Persistent Queue).
3. Получатель вычитывает сообщение, обрабатывает его и только после успешного сохранения в свою БД отправляет брокеру подтверждение (ACK / Commit Offset).
4. Если получатель упал во время обработки, брокер не получит ACK и доставит сообщение заново после рестарта получателя.