Стартовый мир: слепки дней 0…6 при make up #96

Open
opened 2026-08-17 22:54:58 +03:00 by ddmitry · 0 comments
Owner

Part of #5.

Цель

Подъём стенда получает второй источник: стартовый мир отправляет слепки дней
0…6, приём складывает их в ODS, и свежий стенд показывает главный
наблюдаемый эффект ночной выгрузки — у последнего прожитого дня клики есть,
а заказов нет; график выручки дозаполняется, пока мир едет. Тикет замыкает
этап.

Что войдёт

  • Заливка при make up: после событий — команда snapshot того же
    диапазона (--day 0 --days 8) службой генератора; со сдвигом отправки
    уезжают слепки дней 0…6, слепок дня 7 остаётся первому ходу мира. Дослать
    его нельзя — исчезнет awaiting_order на свежем стенде
    (start-world.md).
  • Затем заливка разово дёргает даг приёма заказов (#93) — путь Kafka → STG →
    ODS один, второго не заводить (решение владельца при нарезке, 17 августа
    2026 года). Механика запуска дага у стенда уже есть — образец в
    make check-services. Ожидание доезда — опросом с таймаутом.
  • Опись стартового мира получает хеши семи слепков (форма — #92);
    чек-скрипт «переснятый слепок даёт те же байты» — по образцу пересъёмки
    дня из #42.
  • README — абзац про второй источник при подъёме стенда.
  • Цена make up (сейчас 2 м 50 с с нуля): замер до и после — в тело PR и в
    testing.md.
  • Приёмка этапа: стенд собирается с нуля, стендовые цели карты проверок
    зелёные (гигиена); чекбоксы этапа в #5 тикаются.

Границы

  • Постоянного сторожа доезда слепков не заводить: свойства ниже — разовая
    приёмка. «День 7 без заказов» верен только до первого хода мира и
    постоянной проверкой быть не может.
  • Счётчики заказов в опись и в make check-clickhouse не заводить: опись
    описывает мир, а не доставку; понадобится проверка приёма — число
    заведётся вместе с ней (inventory.md).
  • Пар dds.identity_map не считать и не чинить: поздние пары дня 7 до
    первого хода мира отсутствуют — цена принята с открытыми глазами
    (start-world.md).
  • Витрины и имя awaiting_order для менти — этап 4.

Кому что

Большей частью Кодекс — обвязка по готовым образцам (#42, stand-services.sh): цепочка compose, циклы ожидания, замеры. Абзац README пишет Opus. Бриф Кодексу обязан требовать: проверять свойство, а не текст вывода грепом; только POSIX-инструменты (ripgrep на машине стенда нет); вердикт «недостижимо» перепроверять на достижимость, а не на факт.

Сначала прочитать

  • docs/architecture/orders/start-world.md — целиком, это спека тикета;
  • docs/architecture/orders/inventory.md;
  • резолюция #42 — как заливка встала в make up, цепочка зависимых служб
    compose, ожидание доезда;
  • scripts/stand-services.sh — образцы циклов опроса;
  • docs/architecture/testing.md — карта целей, смоук быстрый.

Проверка

  • make clean && make up с нуля: make smoke, make check-clickhouse,
    make check-services зелёные; замер времени подъёма — в PR.
  • На свежем стенде в ods.order_v есть заказы каждого из дней 0…6 и ни
    одного заказа дня 7; события дня 7 при этом есть (контраст двух
    темпов — разовая приёмка).
  • Хеши семи слепков в описи сходятся с пересъёмкой (чек-скрипт).
  • Первый ход мира (world_next_day) привозит слепок дня 7: заказы
    дня 7 появляются в ods.order_v — разово, руками.
Part of #5. ## Цель Подъём стенда получает второй источник: стартовый мир отправляет слепки дней 0…6, приём складывает их в ODS, и свежий стенд показывает главный наблюдаемый эффект ночной выгрузки — у последнего прожитого дня клики есть, а заказов нет; график выручки дозаполняется, пока мир едет. Тикет замыкает этап. ## Что войдёт - Заливка при `make up`: после событий — команда `snapshot` того же диапазона (`--day 0 --days 8`) службой генератора; со сдвигом отправки уезжают слепки дней 0…6, слепок дня 7 остаётся первому ходу мира. Дослать его нельзя — исчезнет `awaiting_order` на свежем стенде (`start-world.md`). - Затем заливка разово дёргает даг приёма заказов (#93) — путь Kafka → STG → ODS один, второго не заводить (решение владельца при нарезке, 17 августа 2026 года). Механика запуска дага у стенда уже есть — образец в `make check-services`. Ожидание доезда — опросом с таймаутом. - Опись стартового мира получает хеши семи слепков (форма — #92); чек-скрипт «переснятый слепок даёт те же байты» — по образцу пересъёмки дня из #42. - README — абзац про второй источник при подъёме стенда. - Цена `make up` (сейчас 2 м 50 с с нуля): замер до и после — в тело PR и в `testing.md`. - Приёмка этапа: стенд собирается с нуля, стендовые цели карты проверок зелёные (гигиена); чекбоксы этапа в #5 тикаются. ## Границы - Постоянного сторожа доезда слепков не заводить: свойства ниже — разовая приёмка. «День 7 без заказов» верен только до первого хода мира и постоянной проверкой быть не может. - Счётчики заказов в опись и в `make check-clickhouse` не заводить: опись описывает мир, а не доставку; понадобится проверка приёма — число заведётся вместе с ней (`inventory.md`). - Пар `dds.identity_map` не считать и не чинить: поздние пары дня 7 до первого хода мира отсутствуют — цена принята с открытыми глазами (`start-world.md`). - Витрины и имя `awaiting_order` для менти — этап 4. ## Кому что Большей частью Кодекс — обвязка по готовым образцам (#42, `stand-services.sh`): цепочка compose, циклы ожидания, замеры. Абзац README пишет Opus. Бриф Кодексу обязан требовать: проверять свойство, а не текст вывода грепом; только POSIX-инструменты (ripgrep на машине стенда нет); вердикт «недостижимо» перепроверять на достижимость, а не на факт. ## Сначала прочитать - `docs/architecture/orders/start-world.md` — целиком, это спека тикета; - `docs/architecture/orders/inventory.md`; - резолюция #42 — как заливка встала в `make up`, цепочка зависимых служб compose, ожидание доезда; - `scripts/stand-services.sh` — образцы циклов опроса; - `docs/architecture/testing.md` — карта целей, смоук быстрый. ## Проверка - [ ] `make clean && make up` с нуля: `make smoke`, `make check-clickhouse`, `make check-services` зелёные; замер времени подъёма — в PR. - [ ] На свежем стенде в `ods.order_v` есть заказы каждого из дней 0…6 и ни одного заказа дня 7; события дня 7 при этом есть (контраст двух темпов — разовая приёмка). - [ ] Хеши семи слепков в описи сходятся с пересъёмкой (чек-скрипт). - [ ] Первый ход мира (`world_next_day`) привозит слепок дня 7: заказы дня 7 появляются в `ods.order_v` — разово, руками.
ddmitry added the ready-for-agent label 2026-08-17 22:56:27 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: ddmitry/clickstream-data-platform#96