Продвинутый
Что такое паттерн Idempotent Receiver (Идемпотентный получатель)?
В распределенных системах (особенно с Kafka/RabbitMQ) гарантируется доставка At-least-once (Минимум 1 раз). Это значит, что получателю могут прийти дубликаты одного и того же сообщения.
Идемпотентный получатель умеет безопасно переваривать дубли:
1. Каждое сообщение имеет уникальный MessageID.
2. Получатель заводит в БД таблицу processed_messages.
3. При получении сообщения он проверяет: есть ли этот MessageID в таблице?
4. Если есть — просто игнорирует сообщение (отдает ACK). Если нет — обрабатывает бизнес-логику и записывает ID в таблицу.