Eventual consistency — модель согласованности, при которой данные между узлами рано или поздно станут одинаковыми, но в какой-то момент могут расходиться. Это компромисс ради доступности и производительности.
Пример: ты обновил аватарку. Один сервер уже показывает новую, другой ещё старую. Через секунду-другую все синхронизируются. Для аватарки это ок, для банковского баланса — нет.
В микросервисах eventual consistency неизбежна. Сервис заказов создал заказ и отправил событие в Kafka. Сервис инвентаря получит его через 50ms. В этом окне данные несогласованны.
Order Service: создал заказ → отправил событие
--- 50ms eventual consistency window ---
Inventory Service: получил событие → обновил остатки
Как жить с этим: идемпотентные обработчики, retry с backoff, компенсирующие транзакции, UI показывает "в обработке" вместо мгновенного результата. Strong consistency проще для разработчика, но eventual consistency масштабируется лучше.