ACID

ACID - это аббревиатура, описывающая ключевые свойства транзакции БД.

Двухфазная фиксация

Принцип, при котором вносится изменение в двух микросервисах в рамках одной транзакции. При этом появляется новый участник - координатор, который уточняет у микросервисов, готовы ли они вносить изменения. Если да, то необходимая строка в таблице блокируется. Транзакция начинается при условии, что все микросервисы заблокировали необходимую строку и выслали координатору оповещение о готовности.

Плюсы

Появляется возможность вносить изменения в нескольких микросервисах, атомарность не ломается.

Минусы

Теряется изоляция, т.к. базы различных микросервисов зависят от готовности друг друга.

Сага

Разбиение распределенной транзакции на несколько последовательных транзакций, обращенных к разным микросервисам. Существует 2 вида реализации саг:

Плюсы

Меньше свяязанности, хорошая изоляция

Минусы