Эволюция борьбы с гонками в WMS Ozon: как мы обрабатываем миллионы операций и избегаем рассинхронизации данных

Архитектура и масштабируемость

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

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

Разработчики от Junior до Senior — все, кто пишет и проектирует распределённые системы.

Тезисы

Любой разработчик рано или поздно сталкивается с проблемами консистентности данных, неважно, систему какого масштаба он проектирует. Чаще всего причиной потери консистентности являются гонки.

К сожалению, у гонок есть одна большая проблема — их невозможно нормально выявить при тестировании, а выскакивают они в самый неприятный момент, иногда даже без особой нагрузки. Самый лучший способ решения гонок — писать приложение так, чтобы их просто не было, а для этого нужно уметь видеть маркеры и находить подводные камни на этапе проектирования.

В своём докладе я расскажу о первопричинах гонок и при чём тут линеаризуемость, как не допустить гонки на разных уровнях системы — от переменных до микросервисов — и как добавить в это уравнение саги. В общем поговорим про правильное обновление данных в master- и masterless-системах.

Руководитель разработки WMS "Возвраты селлерам"

Вывозим и утилизируем со склада всё, что не продается.

Видео

Другие доклады секции

Архитектура и масштабируемость