Перейти к содержанию

“Грязное” чтение

“Грязным” называют чтение, которое происходит в процессе обновления данных другим повествованием.
Пусть есть некий сервис заказов с поддержкой кредитного лимита. Тогда повествование, отменяющее заказ, состоит из следующих транзакций:

  • Сервис Consumer увеличивает доступный кредит;
  • Сервис Order меняет состояние заказа на CANCELLED;
  • Сервис Delivery отменяет доставку.

Теперь представим, что во время выполнения повествований Cancel Order и Create Order первое откатывается, так как отменять доставку уже поздно. Тогда возможна следующая последовательность транзакций на сервисе Consumer:

  • Cancel Order увеличивает кредит;
  • Create Order уменьшает кредит;
  • Cancel Order - компенсирующая транзакция, уменьшает кредит.

В этом сценарии Create Order выполняет грязное чтение доступного кредита, что позволяет клиенту разместить заказ, превышающий его кредитный лимит.


Последнее обновление : 4 июля 2023 г.
Дата создания : 26 июля 2022 г.

Комментарии

Комментарии