Exactly-once в Go-интеграциях: почему очередь и ретраи не спасают прод
Программный комитет ещё не принял решения по этому докладу
Целевая аудитория
Тезисы
В асинхронных интеграциях с внешними сервисами часто полагаются на очереди, ретраи и ключи идемпотентности, ожидая, что этого достаточно для надёжной обработки событий.
На практике такие решения дают ложное ощущение exactly-once и ломаются в моменты гонок, дубликатов и несогласованного порядка обновлений.
В докладе я разбираю опыт построения онлайн-системы обработки десятков тысяч событий в сутки с требованиями к консистентности в пределах нескольких секунд. Я покажу, почему at-least-once обработка оказалась недостаточной, где именно ломаются классические подходы и как мы пришли к управлению версиями сущностей и порядком выполнения задач на уровне бизнес-логики.
Доклад основан на реальных прод-инцидентах: дубликатах событий, гонках задач в очереди, неконтролируемых ретраях и рассинхронизации данных с внешними провайдерами. Я расскажу, какие инженерные компромиссы пришлось принять, от каких "правильных" решений отказаться и какие подходы в итоге позволили системе перестать зависеть от поведения внешних сервисов.
🔹 В IT с 2017, в Go — с 2022.
🔹 Разрабатываю продуктовые решения.
🔹 Работал в Ozon (личный кабинет продавца) и Mail.ru (безопасность, сделал х5 к автовосстановлению паролей).
🔹 Сейчас в Яндекс.Смене — руковожу бэкендом службы бэкофиса.