Заметки
Докладчик рассказывает про то, как они справлялись с переходом с монолитной архитектуры на микросервисную в Avito. Они реализуют Database per service
Цели, которые хотели достичь:
- Обеспечивать зависимые изменения для бизнес критичных данных.
- Иметь возможность задать строгий порядок.
- Соблюсти 100% консистентность (согласовать данные, даже в случае аварий).
- Обеспечить проверку работоспособности на всех уровнях.
Был реализован сервис PG Saga. В качестве хранилища в этом сервисе используется синхронный PostgreSQL. Таким образом у них единый сервис для всех саг.
Механизм работы. На примере покупки премиальной подписки.
- Владелец саги регистрирует сагу в PG Saga
- Дальше он генерирует класс саги (с payload)
- Дальше executor в PG Saga поднимает накопившиеся саги и начинает выполнять ее по шагам
- В Billing Service выполняется резервирование денег
- В User Service применяются VAS операции. Что это?