--- aliases: tags: - зрелость/🌱 date: - - 2024-04-04 zero-link: - "[[00 Архитектура ПО]]" parents: linked: - "[[Реализация повествования (Saga)]]" author: - "[[Евтеев Константин]]" link: https://www.youtube.com/watch?v=OOP_4kuzaWI --- ## Заметки Докладчик рассказывает про то, как они справлялись с переходом с монолитной архитектуры на микросервисную в Avito. Они реализуют [Database per service](Database%20per%20service.md) Цели, которые хотели достичь: - Обеспечивать зависимые изменения для бизнес критичных данных. - Иметь возможность задать строгий порядок. - Соблюсти 100% консистентность (согласовать данные, даже в случае аварий). - Обеспечить проверку работоспособности на всех уровнях. Был реализован сервис PG Saga. В качестве хранилища в этом сервисе используется синхронный PostgreSQL. Таким образом у них единый сервис для всех саг. ![](Pasted%20image%2020240404122458.png) Механизм работы. На примере покупки премиальной подписки. - Владелец саги регистрирует сагу в PG Saga - Дальше он генерирует класс саги (с payload) - Дальше executor в PG Saga поднимает накопившиеся саги и начинает выполнять ее по шагам - В Billing Service выполняется резервирование денег - В User Service применяются VAS операции. Что это?