Конференция завершена. Ждем вас на HighLoad++ в следующий раз!

PG Saga: зависимые изменения данных в нескольких сервисах без двухфазных коммитов и синхронных зависимостейАрхитектуры, масштабируемость

Доклад принят в программу конференции
Константин Евтеев
X5 FoodTech

Главный архитектор X5 FoodTech.
EX DBA Unit Leader Avito.
Активно участвует в жизни PostgreSQL community.

https://www.facebook.com/evteev.k.s
Тезисы

История про опыт Avito в решении одного из вызовов микросервисной архитектуры - реализации бизнес-транзакций с соблюдением консистентности данных между сервисами при использовании архитектурного паттерна Database per Service.

После разделения приложения на несколько сервисов (как следствие, у каждого сервиса своя база данных) уже невозможно сделать все атомарно в 1 ACID-транзакции. Это можно реализовать 2 способами:
- Two-phase commit 2PC;
- sagas.

Как раз мы выбрали паттерн саг - вот об этом я хочу рассказать, в том числе, как мы его реализовали (PG - потому что в нашей реализации в сервисе саг мы используем PostgreSQL).

Другие доклады секции Архитектуры, масштабируемость

Rambler's Top100