От хаоса к порядку: управление состояниями и консистентность в интеграциях

Через тернии к...

Доклад принят в программу конференции

Мнение Программного комитета о докладе

Про стейт машины многие говорят, но мало кто реально делает их полезными. Автор — делает, и теперь спокойно спит по ночам. Немного теории, много практики, граблей, ошибок, выводов и нового уровня надёжности сервиса.

Целевая аудитория

o Разработчики, которые работают с интеграциями внешних сервисов; o Те, кто хочет проектировать универсальные решения для многоканальной обработки данных; o Архитекторы и тимлиды, заинтересованные в переиспользуемых компонентах.

Тезисы

Любая интеграция с внешними сервисами — это борьба с хаосом:
У каждого внешнего клиента свой API, свой формат данных и свои бизнес-правила.
Данные приходят с задержками, иногда задним числом, форматы меняются без предупреждения, а гарантий консистентности чаще всего нет.
Как в таких условиях построить систему, которая не развалится?
В этом докладе я расскажу:
• Как мы превратили смену – нашу основную сущность - в стейт-машину, чтобы четко контролировать её жизненный цикл.
• Как работает универсальный адаптер, который позволяет подключать новых внешних клиентов без рефакторинга.
• Как мы обеспечили консистентность данных, используя очереди, контроль состояний, отказоустойчивые механизмы.
• Какие ошибки мы совершили и что можно было сделать лучше.
Доклад будет полезен разработчикам, работающим с интеграциями, асинхронными событиями и сложными процессами, которым важно строить гибкую, масштабируемую и отказоустойчивую архитектуру.

🔹 В IT с 2017, в Go — с 2022
🔹 Разрабатываю продуктовые решения
🔹 Работал в Ozon (личный кабинет продавца) и Mail.ru (безопасность, сделал х5 к автовосстановлению паролей)
🔹 Сейчас в Яндекс.Смене — строю надежные интеграции с поставщиками смен

Яндекс

Яндекс.Смена https://smena.yandex.ru/

Видео