Склад «Ячейка» Демо · antongoncharov.ru
Как устроено демо

Контроль

Две вещи, ради которых учёт пишут на транзакциях, а не на «прочитал — посчитал — записал»: гонка одновременных запросов и сверка витрины с журналом.

Гонка двух запросов

Два отдельных PHP-процесса в один и тот же момент резервируют весь свободный остаток ремня YCH-330. Каждый держит транзакцию 400 мс.

Запустите оба варианта и сравните полосы: с блокировкой второй процесс ждёт, без неё оба «успешно» продают одно и то же.

Сверка витрины с журналом

Для каждой позиции остаток из витрины сравнивается с суммой проводок журнала.

Сверок ещё не было
Сценарий 1. «Сломать витрину» — имитация бага: кто-то сделал UPDATE stock_balances в обход журнала.
2. «Сверить» — сверка находит позицию и показывает, на сколько разошлось.
3. «Пересчитать из журнала» — витрина восстанавливается из проводок, повторная сверка чистая.

Сброс демо

Стартовые остатки, шесть заказов и журнал — как при первом открытии