34 lines
1.9 KiB
Markdown
34 lines
1.9 KiB
Markdown
---
|
||
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 операции. Что это? |