Files
clickstream-ch-kafka-supers…/.scratch/feature-data-generator/issues/03-tick-stream-with-active-visits.md
T
Dmitry Dementiev d8da27187e feat(generator): добавлен поток активных визитов по тикам
- Зачем:
  - генератор должен выпускать события визита по запланированным тикам, не приклеивая весь визит к одному запуску.
- Что:
  - добавлен тиковый слой `TickStreamGenerator` с активными визитами и выпуском созревших событий.
  - добавлена валидация потолка активных визитов относительно потолка популяции.
  - сохранён событийный смысл `event_budget` и добавлен регрессионный тест против разгона интенсивности.
- Проверка:
  - `uv run --with-requirements generator/requirements.txt pytest generator/tests -q` — 81 passed.
2026-06-11 15:32:53 +03:00

2.5 KiB

Status: ready-for-human

Поток по тикам с активными визитами

What to build

Разложить визиты по тикам генератора. Визит может жить дольше одного тика: генератор хранит активные визиты между вызовами, выпускает только те события, чьё запланированное время наступило, и не приклеивает все события к текущему тику.

Задача проверяет основную потоковую механику без Kafka и без восстановления после рестарта.

Источник решений: docs/specs/2026-06-10-generator-math-model.md, раздел «Раскладка по тикам».

Acceptance criteria

  • Тест через публичный интерфейс генератора показывает, что один click_id может появляться в выходе нескольких последовательных тиков.
  • На каждом тике выпускаются только созревшие события активных визитов.
  • event_timestamp отражает запланированное время события, а не время фактической отправки тика.
  • Завершённые визиты больше не выпускают события в следующих тиках.
  • При достижении потолка активных визитов новые рождения в этот тик пропускаются, а бюджет не копится бесконечно.
  • Конфигурация запрещает состояние, где потолок активных визитов не меньше потолка популяции пользователей.

Blocked by

  • .scratch/feature-data-generator/issues/02-visit-page-path-and-monotonic-time.md
  • .scratch/feature-data-generator/issues/02-5-generator-service-cleanup.md

Comments

2026-06-11: реализовано через TickStreamGenerator в тиковом слое. Проверка: uv run --with-requirements generator/requirements.txt pytest generator/tests -q — 81 passed. После ревью исправлено: входной event_budget снова трактуется как бюджет событий, а не как число рождений визитов.