Submit an issue View all issues Source
MIR-1688

Model server startup as a typed boot dataflow graph

In Progress public
phinze phinze Opened Aug 28, 2026 Updated Aug 28, 2026

Server startup currently relies on statement order and shared mutable state to communicate lifecycle dependencies.

Introduce a small generic pkg/boot package and move server lifecycle ownership into focused components under components/server. Typed outputs should carry ready values and declare graph edges at the same time.

Done when:

  • The graph validates missing dependencies and cycles before startup.
  • Independent components start in parallel.
  • A consumer runs only after all of its producers publish successfully.
  • The same edges produce reverse dependency-order shutdown.
  • commands.Server remains the CLI policy, configuration, signal, and runtime-handoff layer.
  • Build saga recovery waits for BuildKit, the OCI registry, and registry host mapping.
  • Build and deployment handlers are exposed only after every boot capability their request paths need is available.
  • A disabled optional component, such as BuildKit, resolves successfully without holding the graph open.
  • RFD-88 records the refined boot-only model and no longer promises runtime readiness conditions.

Implementation: mirendev/runtime#1096