docs(orders): зафиксирован версионный приём заказов
- Зачем: - отменённая подмена партиции snapshot_date противоречила порционному чтению Kafka и могла обучать потере ранее принятых версий. - Что: - добавлены спецификация приёма заказов и ADR о версионном ODS с ods.order_v. - согласованы мастер-спека, дока хранилища, ADR 0008 и исследование формата. - зафиксированы граница приёма, координаты загрузки, диагностические повторы и отложенное проектирование DDS. - Проверка: - git diff --cached --check. - горячее ревью по правилам репозитория и принятому решению. - два прохода холодного ревью.
This commit is contained in:
@@ -63,8 +63,9 @@ Debezium проводит ту же границу внутри одного с
|
||||
|
||||
`created_at` и `updated_at` — аудит строки источника. Поэтому
|
||||
`toDate(created_at)` в
|
||||
[мастер-спеке](../specs/2026-07-30-stand-v2-realism.md) используется только как
|
||||
стабильный технический ключ партиции `dds.order`: это день создания строки
|
||||
[спецификации приёма заказов](../specs/2026-08-16-order-ingestion.md)
|
||||
используется как стабильный технический ключ партиции `ods.order_snapshot`:
|
||||
это день создания строки
|
||||
источника, а не доказательство дня бизнес-события.
|
||||
|
||||
Минимальное решение — не добавлять `ordered_at` на всякий случай. Пока модель
|
||||
@@ -155,8 +156,8 @@ parseDateTime64InJodaSyntaxOrNull(
|
||||
слепок с `snapshot_date = ORIGIN` уезжает прогоном дня 1.
|
||||
|
||||
`as_of_date` тоже могло бы означать дату, по состоянию на которую показаны
|
||||
данные. Но `snapshot_date` уже является языком спеки, партиции ODS и ADR о
|
||||
приёме заказов. Переименование не добавляет урока и может спутать дату
|
||||
данные. Но `snapshot_date` уже является языком спеки и ADR о приёме заказов.
|
||||
Переименование не добавляет урока и может спутать дату
|
||||
выгрузки с периодом бизнес-действия записи. Для этого стенда оставляем
|
||||
`snapshot_date`.
|
||||
|
||||
@@ -205,6 +206,7 @@ KISS-вариант для [существующего модуля сериал
|
||||
Граница этого решения: `toDecimal64OrNull(..., 2)` проверяет числовую
|
||||
преобразуемость, но не лексическое правило «ровно два знака» — локально строки
|
||||
`1299.90`, `1299.9` и `1299.900` дали одно значение. Проверка денежного формата
|
||||
не нужна сериализатору этого слепка: он сам выпускает ровно два знака. Считать
|
||||
ли остальные формы браком при приёме, решает задача #80; это решение отдельного
|
||||
лексического валидатора не требует.
|
||||
не нужна сериализатору этого слепка: он сам выпускает ровно два знака. Приём ODS
|
||||
проверяет ту же каноническую форму и считает остальные формы браком; граница
|
||||
строгого приёма зафиксирована в
|
||||
[спецификации заказов](../specs/2026-08-16-order-ingestion.md).
|
||||
|
||||
Reference in New Issue
Block a user