docs(orders): закрыты находки холодного ревью дефектов

Зачем: холодная сверка сборки с резолюциями нашла два завышенных
обещания, недовнесённую правку и битую ссылку (DEF-1, DEF-2, DEF-3,
DEF-5); DEF-4 отложен до триажа вычитания #84.

Что: обещание «переливает ровно тот слепок» смягчено до штатного прогона
с хвостом после падения (спека §9 и ADR 0008); довод против сдвига
created_at перестроен на канон аудита источника (§4); в §7 мастер-спеки
довнесено чтение amount_delta через сравнение позиций (#72); ссылка в §1
ведёт на раздел 8.

Проверка: узкая перепроверка тем же ревьюером.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-16 23:06:14 +03:00
co-authored by Claude Fable 5
parent 7e5e05ed47
commit b9f570fc40
3 changed files with 17 additions and 11 deletions
+10 -6
View File
@@ -79,7 +79,7 @@
В модели строка заказа в базе источника создаётся синхронно с покупкой, поэтому
день рождения заказа и день создания строки совпадают. Смысл полей от этого не
меняется: `created_at` и `updated_at` — аудит строки по часам базы источника,
бизнес-время покупки живёт в `purchase.UTCEventTime` (раздел 6).
бизнес-время покупки живёт в `purchase.UTCEventTime` (раздел 8).
Отклонено: *выводить заказ разбором собственного вывода* (`purchaseID`, сырой
`ecommerce`) — бэкенд стал бы читателем трекера ровно там, где стенд учит, что
@@ -264,9 +264,11 @@ d…d+δ−1 её нет, а с d+δ она появляется в том со
перестало бы быть верным; при δ ≤ 2 у всякого заказа слепков не меньше пяти.
Легенда: заказ ушёл в ручную обработку и попал в выгрузку позже. Следствие для
переливки не ново: у прошлых дней окна меняется и состав, а не только суммы —
«дыхание» статусов это уже требовало. Отклонено: *сдвиг `created_at`* заказ
уехал бы в чужую партицию, и «выручка дня D» перестала бы отвечать покупкам
дня D — сломалась бы та самая сверка, ради которой всё строится.
«дыхание» статусов это уже требовало. Отклонено: *сдвиг `created_at`*
подделка аудита источника: день создания строки разошёлся бы с днём покупки,
чьё равенство держит синхронная модель (раздел 1), заказ уехал бы в чужую
партицию, и «выручка дня D» перестала бы отвечать покупкам дня D — сломалась
бы та самая сверка, ради которой всё строится.
**Пересечения.** Броски независимы, пересечения выходят арифметикой, приоритет
мастер-спеки работает по-настоящему. Исключений два, и оба названы выше: дубль
@@ -473,8 +475,10 @@ Kafka не задаёт границы полного слепка, поэтом
Стенд получает два режима приёма рядом — поток против слепка, push против
pull, — и это опорная точка раздела 12 мастер-спеки. Тот же даг проигрывает
модельный день и забирает слепок; со сдвигом отправки он переливает слепок
предыдущего дня — ровно тот, который сам и положил в топик.
модельный день и забирает слепок; в штатном прогоне это слепок предыдущего
дня, который он сам и положил в топик. После падения между отправкой и
забором в топике может ждать и хвост прежних слепков — забор принимает всё
приехавшее, версии в ODS это поглощают (спека приёма).
## 10. Правила кода этапа 3