29 lines
2.4 KiB
Markdown
29 lines
2.4 KiB
Markdown
# ADR-0003: Синхронная детерминированная модель сборки
|
|
|
|
**Дата**: 2026-08-26
|
|
**Статус**: Принято
|
|
|
|
## Контекст
|
|
|
|
Сборка документа выполняется локальным Typst compiler: данные читаются из файлов проекта, затем происходит несколько внутренних итераций layout и создаётся PDF. Внешних сетевых сервисов, конкурентной записи или длительных независимых операций в v1 нет.
|
|
|
|
Добавление собственной async-модели не ускорит Typst-layout, но усложнит диагностику, воспроизводимость и тестирование.
|
|
|
|
## Рассматриваемые варианты
|
|
|
|
1. **Синхронная сборка одного документа** — простая, воспроизводимая и соответствует модели Typst.
|
|
2. **Параллельные renderer-профили внутри Typst** — не поддерживаются как управляемая модель и не дают изоляции layout-state.
|
|
3. **Внешний асинхронный build-сервис** — полезен для массовой генерации, но избыточен для локального шаблона.
|
|
|
|
## Решение
|
|
|
|
Выбрали **синхронную детерминированную сборку одного документа**. Параллельный запуск нескольких независимых fixtures допускается только во внешнем test harness, где каждый процесс получает собственный entry point и output.
|
|
|
|
## Последствия
|
|
|
|
**Становится проще**: воспроизводимость, порядок diagnostics, изоляция `state` и расследование visual regressions.
|
|
|
|
**Становится сложнее**: массовая генерация большого набора документов должна оркестрироваться внешним скриптом.
|
|
|
|
**Закрывает дверь на**: сетевые и фоновые операции непосредственно внутри шаблона v1.
|