Передать жизненный цикл мира Airflow #125

Merged
ddmitry merged 3 commits from 119-world-lifecycle into main 2026-08-21 23:55:51 +03:00
Owner

Что изменилось

  • world_initialize создаёт прикладные базы, топики и стартовый мир, затем
    запоминает позицию модельного времени;
  • world_recreate адресно пересоздаёт прикладной мир и делегирует его создание
    world_initialize;
  • make up и make rebuild-storage запускают соответствующие даги через REST
    API Airflow; Compose больше не управляет прикладными данными;
  • для DDL жизненного цикла добавлены отдельные пользователь и роль ClickHouse;
  • спека, ADR и справочники приведены к новой границе ответственности.

Ветка перенесена поверх main после слияния PR мониторинга. Сервисы Grafana,
Prometheus и kafka-exporter, их доступы и документация сохранены.

Проверка

  • make config-test;
  • корневой make lint;
  • make lint и make typecheck в generator/;
  • повторный make up на существующем мире: world_initialize завершился
    успешно, данные не пересозданы;
  • make smoke: 21/21;
  • make check-clickhouse: 10/10;
  • make check-services: 7/7.

При приёмке до переноса ветки: холодный make up — 9 м 39 с,
make rebuild-storage — 3 м 9 с, повторный make up — 2 м 41 с. Проверены
красные пути позиции мира, оборванное пересоздание и ограничения учётной записи
lifecycle. Задача build_generator_image заняла по 1,5 с в двух прогонах.

После обновления работающего стенда Prometheus потребовался один адресный
перезапуск: процесс продолжал работать со старой конфигурацией, хотя новая уже
была примонтирована, и не видел kafka-exporter. После перечитывания
конфигурации объединённый стенд прошёл все проверки выше.

Дальнейший переход с прямого clickhouse-connect на официальный провайдер
Airflow вынесен в #124.

Ревью

Свежий слепой обзор Opus дал 11 находок. Десять закрыты коммитом bca1ffa;
извлечение общей фабрики DockerOperator отклонено, потому что связало бы два
самостоятельно разбираемых файла дагов ради одиннадцати строк. Утраченные
объяснения параметров при этом возвращены. Узкая перепроверка той же сессией:
ALL_CLOSED, новых дефектов нет.

Closes #119

## Что изменилось - `world_initialize` создаёт прикладные базы, топики и стартовый мир, затем запоминает позицию модельного времени; - `world_recreate` адресно пересоздаёт прикладной мир и делегирует его создание `world_initialize`; - `make up` и `make rebuild-storage` запускают соответствующие даги через REST API Airflow; Compose больше не управляет прикладными данными; - для DDL жизненного цикла добавлены отдельные пользователь и роль ClickHouse; - спека, ADR и справочники приведены к новой границе ответственности. Ветка перенесена поверх `main` после слияния PR мониторинга. Сервисы Grafana, Prometheus и `kafka-exporter`, их доступы и документация сохранены. ## Проверка - `make config-test`; - корневой `make lint`; - `make lint` и `make typecheck` в `generator/`; - повторный `make up` на существующем мире: `world_initialize` завершился успешно, данные не пересозданы; - `make smoke`: 21/21; - `make check-clickhouse`: 10/10; - `make check-services`: 7/7. При приёмке до переноса ветки: холодный `make up` — 9 м 39 с, `make rebuild-storage` — 3 м 9 с, повторный `make up` — 2 м 41 с. Проверены красные пути позиции мира, оборванное пересоздание и ограничения учётной записи `lifecycle`. Задача `build_generator_image` заняла по 1,5 с в двух прогонах. После обновления работающего стенда Prometheus потребовался один адресный перезапуск: процесс продолжал работать со старой конфигурацией, хотя новая уже была примонтирована, и не видел `kafka-exporter`. После перечитывания конфигурации объединённый стенд прошёл все проверки выше. Дальнейший переход с прямого `clickhouse-connect` на официальный провайдер Airflow вынесен в #124. ## Ревью Свежий слепой обзор Opus дал 11 находок. Десять закрыты коммитом `bca1ffa`; извлечение общей фабрики DockerOperator отклонено, потому что связало бы два самостоятельно разбираемых файла дагов ради одиннадцати строк. Утраченные объяснения параметров при этом возвращены. Узкая перепроверка той же сессией: `ALL_CLOSED`, новых дефектов нет. Closes #119
ddmitry added 2 commits 2026-08-21 23:28:01 +03:00
- Зачем:
  - Compose должен поднимать инфраструктуру, а Airflow — владеть прикладным миром.
- Что:
  - добавлены даги создания и пересоздания мира с явными состояниями позиции;
  - цели make переведены на REST API Airflow, старые одноразовые службы удалены;
  - добавлена ограниченная учётная запись ClickHouse для прикладного DDL.
- Проверка:
  - `make lint`, `make config-test`, `bash -n scripts/run-dag.sh infra/airflow/init.sh`;
  - `make lint` и `make typecheck` в `generator/`;
  - холодный `make up`, повторный `make up`, `make rebuild-storage` и сценарий оборванной очистки;
  - `make smoke`, `make check-clickhouse`, `make check-services`.
- Зачем:
  - границы владения Compose и Airflow должны быть видны менти из одного источника истины.
- Что:
  - добавлены спека и ADR жизненного цикла мира;
  - обновлены README, архитектурные справочники и прежние решения;
  - правило полной очистки записано как явное и проверяемое требование к агенту.
- Проверка:
  - документация вычитана через `ai-text-lint` и `writing-for-agents`;
  - выполнена литературная вычитка русского текста;
  - `git diff --check`.
ddmitry added 1 commit 2026-08-21 23:39:08 +03:00
- Зачем:
  - свежий main добавил мониторинг и проявил устаревшие доводы, мёртвые настройки и слишком короткий тайм-аут DDL.
- Что:
  - документация приведена к текущему жизненному циклу мира и составу стенда;
  - удалены лишняя проверка и неиспользуемый YAML-якорь;
  - ожидание ClickHouse возвращено к 300 секундам, а отказы и параметры DockerOperator пояснены.
- Проверка:
  - `make config-test`;
  - `make lint`;
  - `make smoke` — 21/21.
ddmitry merged commit 587e392220 into main 2026-08-21 23:55:51 +03:00
ddmitry deleted branch 119-world-lifecycle 2026-08-21 23:55:52 +03:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ddmitry/clickstream-data-platform#125