Model child lifecycles, isolated state, and partial failure as one execution tree
Model multi-agent execution as a durable parent-child run hierarchy with bounded fan-out, deterministic fan-in, isolated context, and propagated budgets and cancellation.
Read article ↗Compose bounded control flows instead of building one giant autonomous loop
A plain-Python guide to tool use, parallel orchestration, planning, HITL, retry, and reflection—and to the boundary between LLM judgment and deterministic code.
Read article ↗Separate graph state from application state to assign responsibility across workers, Redis, databases, and browsers
A close look at LangGraph's graph.astream(), updates, custom streams, reducers, and checkpoints—and the boundary between an agent runtime and backend architecture.
Read article ↗Safely stream snapshots and events over an HTTP connection with async generators
Build an agent streaming endpoint from iterators and async generators through SSE framing, Redis Stream replay, heartbeats, disconnects, and backpressure.
Read article ↗Linking user intent to side effects so a transfer tool does not run twice
For side-effecting agent tools such as transfers and payments: human approval, action fingerprints, idempotency keys, queue redelivery, and unknown outcomes.
Read article ↗Restore the screen from a snapshot, then keep its timeline complete with cursors
Lay out current state and an event timeline in an agent run screen, then implement bootstrap, SSE cursor replay, and snapshot resync for safe reconnects.
Read article ↗Durable records, hot projections, and resumable snapshots survive different failures
Separate agent state into durable run records, hot projections, execution checkpoints, and process-local state, then place each by its failure and recovery requirements.
Read article ↗Separate concurrency primitives from ownership of the execution lifecycle
Why a worker is not another name for a thread or process, and when a long-running agent run should move from an API request to a queue and worker.
Read article ↗Waiting, blocking SDKs, and CPU-bound computation require different execution tools
Classify agent-backend work as non-blocking I/O, blocking I/O, or CPU-bound computation, then choose among async, threads, and processes.
Read article ↗Turn time spent waiting on LLMs, databases, and search APIs into concurrency
Why agent backends need async, explained through blocking, coroutines, tasks, the event loop, await, and structured concurrency.
Read article ↗Deciding internal open-model serving for security, data control, cost, and performance
When internal GPU serving and vLLM make sense: compare external APIs, adoption trade-offs, batching and prefix caching in plain terms, and a pre-flight checklist.
Read article ↗Execution architecture boundaries — mental model, failure modes, optional deep dives
How API, queue, worker, PostgreSQL, Redis, and SSE divide responsibility in an agent backend. Implementation detail lives in follow-up articles.
Read article ↗Why I keep questions, evidence, assumptions, and revision conditions with the conclusion, so research can be revisited and reused.
Read article ↗