План исполнения как отдельная сущность
Сначала строится дерево намерений, а потом — план исполнения. План — отдельная сущность, не скрытая в файле.
UX по образцу terraform plan
План можно показать пользователю до запуска, практически как terraform plan:
✓ GET /organizations
→ 23 organizations
→ foreach organization
→ GET /organizations/1/users
→ GET /organizations/2/users
→ foreach user
→ GET /users/15/repositories
Это совершенно другой UX: пользователь видит, что именно будет выполнено, ещё до запуска.
Оптимизация плана
Исполнитель оценивает объём и предлагает варианты:
- «здесь будет примерно 4000 HTTP-запросов»;
- «API поддерживает bulk endpoint»;
- «можно выполнять по 10 одновременно».
Появляется настоящий query planner, а не линейный исполнитель.
Архитектура
httplan file → Parser → Execution Graph → Planner → Executor
Planner определяет зависимости, параллельность, циклы, пагинацию и повторные попытки. Пользователь может посмотреть получившийся план перед запуском — как план в make или SQL-оптимизаторе.
Источники
- Обсуждение концепции httplan — диалог с ChatGPT (2026-07-08), chatgpt.com/share/6a4e7804-ce90-83ed-acd0-0def6540872d