“Грязное” чтение¶
“Грязным” называют чтение, которое происходит в процессе обновления данных другим повествованием.
Пусть есть некий сервис заказов с поддержкой кредитного лимита. Тогда повествование, отменяющее заказ, состоит из следующих транзакций:
- Сервис
Consumerувеличивает доступный кредит; - Сервис
Orderменяет состояние заказа наCANCELLED; - Сервис
Deliveryотменяет доставку.
Теперь представим, что во время выполнения повествований Cancel Order и Create Order первое откатывается, так как отменять доставку уже поздно. Тогда возможна следующая последовательность транзакций на сервисе Consumer:
Cancel Orderувеличивает кредит;Create Orderуменьшает кредит;Cancel Order- компенсирующая транзакция, уменьшает кредит.
В этом сценарии Create Order выполняет грязное чтение доступного кредита, что позволяет клиенту разместить заказ, превышающий его кредитный лимит.
Последнее обновление :
4 июля 2023 г.
Дата создания : 26 июля 2022 г.
Дата создания : 26 июля 2022 г.