The Airbnb Tech Blog | Medium на русском
Подписаться
Капитан: Создание встроенного механизма рабочих процессов Airbnb
Airbnb столкнулась с проблемой надежного выполнения сложных рабочих процессов, таких как страховые претензии. Существующие решения, такие как внешние механизмы оркестровки, имели недостатки, включая операционную сложность и зависимость от поставщика. Чтобы решить эти проблемы, Airbnb создала Skipper, встроенный механизм рабочих процессов, который работает внутри каждой службы. Skipper отдает приоритет лаконичности, отсутствию единых точек отказа и использованию существующей базы данных. Основой конструкции Skipper являются рабочие процессы, которые определяют логику и действия, инкапсулирующие отдельные операции. Долговечность достигается за счет механизма повторного воспроизведения, сохраняющего результаты действий в базе данных. Повторное воспроизведение позволяет рабочим процессам возобновляться с того места, где они были прерваны. Поля состояния сохраняются для эффективности, используя сигналы для обновления состояния рабочего процесса. Тестирование рабочих процессов с помощью Skipper упрощено, так как ему не нужно настраивать очереди или имитировать какую-либо инфраструктуру. Этот подход обеспечивает надежное выполнение без добавления зависимостей или снижения производительности.