Why separate: This is orchestration and transport. Keep it thin.
Contains
- controllers
- orchestrators/services:
A. validate → canonicalize → scenario_key → dedup → enqueue job
B. progress endpoints
C. results endpoints + view endpoints (calls stats)
D. deep-dive endpoints (enqueue trace job)
E. pack catalog endpoints
F. capabilities endpoint
- observability config (OTel)
- OpenAPI generation
- logging policy (no linkable metadata)
Depends on
- contract, domain, engine (only via executor interface), stats, persistence, packs
Key rule: No domain math here. It’s glue.
Why separate: This is orchestration and transport. Keep it thin.
Contains
A. validate → canonicalize → scenario_key → dedup → enqueue job
B. progress endpoints
C. results endpoints + view endpoints (calls stats)
D. deep-dive endpoints (enqueue trace job)
E. pack catalog endpoints
F. capabilities endpoint
Depends on
Key rule: No domain math here. It’s glue.