Agents Honestly
Appendices

Temporal Pattern Index

Every pattern in the Temporal design-pattern catalog, mapped to the agent problem it solves and where this book uses it.

The Temporal design-pattern catalog organizes about thirty-five patterns into twelve categories. It is written for distributed systems generally, with no mention of agents.

That is the opportunity. Nearly every hard problem in running an agent, such as memory that outgrows the window, tools with side effects, humans in the loop, provider quotas, or deploys mid-run, already has a named, battle-tested solution in that catalog. This appendix is the translation layer.

How to use this

Read it in either direction. Coming from Temporal, the middle column tells you what each pattern buys you in an agent. Coming from an agent problem, scan the middle column and it names the pattern you want.

Task Orchestration

Temporal patternThe agent problem it solvesIn this book
Child WorkflowsSub-agents with their own context, lifecycle, and failure boundarySub-Agent Context Isolation
Parallel ExecutionIndependent tool calls that shouldn't run one after anotherFan-Out Over Items
Pick First (Race)Query two providers, take whoever answers firstFallback Model Ladder

Workflow Messaging

Temporal patternThe agent problem it solvesIn this book
Signal with StartA customer reply arrives for a ticket agent that may not exist yetSignal With Start
Request-Response via UpdatesAsk a running agent a question and get a validated answer synchronouslyRequest-Response via Update
Event AccumulatorThree messages arrive in four seconds; respond once, not three timesLong-Lived Agents

Entity & Lifecycle

Temporal patternThe agent problem it solvesIn this book
Entity WorkflowThe agent that lives for the life of a ticket, customer, or caseAgent as Entity Workflow
Continue-As-NewConversation memory outgrows what one event history can holdContinue-As-New for Memory
Updatable TimerAn SLA deadline that moves when the customer repliesUpdatable SLA Timer

External Interaction

Temporal patternThe agent problem it solvesIn this book
Polling External ServicesWait on a job the agent kicked off elsewhereApproval and Waiting
Long-Running ActivityA tool call that takes an hour, with liveness detectionHeartbeat for Long Tools
Delayed StartFollow up in three days if the customer goes quietLong-Lived Agents
Delayed CallbackResume when an external system finally calls backApproval and Waiting
ApprovalRefunds over the policy limit need a human, and humans are slowApproval Gate

Distributed Transactions

Temporal patternThe agent problem it solvesIn this book
Saga PatternThe refund succeeded, then the next step failed. Undo it.Saga for Tool Side Effects
Early ReturnAcknowledge the user now, finish the slow work afterEarly Return + Local Activities

Error Handling & Retry

Temporal patternThe agent problem it solvesIn this book
Fixed Count of RetriesBound the spend on a failing model callBounded Autonomy
Fixed Wall-Time RetriesKeep trying through a provider outage, up to a deadlineFast and Slow Retries
Non-Retryable ErrorsA content refusal will never succeed on retry, stop paying for itNon-Retryable Model Errors
Delayed RetryBack off from a 429 without synchronizing your whole fleetDelayed Retry with Jitter
Fast/Slow RetriesOne policy for blips, another for outagesFast and Slow Retries
Retry Alerting via MetricsNotice the agent is silently retrying its way through the budgetCost Accounting
Resumable ActivityRestart a long tool call from its checkpoint, not from zeroResumable Activity

Batch Processing

Temporal patternThe agent problem it solvesIn this book
Fan-Out with Child WorkflowsOne agent per ticket across the overnight backlogFan-Out Over Items
Batch IteratorWalk a dataset larger than any single history can holdBatch Iterator
Sliding WindowKeep N agents in flight continuously instead of in wavesSliding Window
MapReduce TreeA backfill too wide for one parent workflowMapReduce Tree

QoS & Throughput

Temporal patternThe agent problem it solvesIn this book
Downstream Rate LimitingRespect a provider quota you do not controlDownstream Rate Limiting
Priority Task QueuesLive chat stays fast while the nightly backfill runsPriority Task Queues
FairnessOne noisy customer stops consuming the whole agent fleetTenant Fairness

Performance & Latency

Temporal patternThe agent problem it solvesIn this book
Local ActivitiesCheap, fast tools that shouldn't pay full persistence costTool as Activity
Early Return + Local ActivitiesInteractive responsiveness on top of a durable backendPaying for Durability in Milliseconds
Eager Workflow StartShave the startup hop off a user-initiated agent runPaying for Durability in Milliseconds

Worker Configuration

Temporal patternThe agent problem it solvesIn this book
Worker-Specific Task QueuesPin work to the worker holding the cache, the GPU, or the fileWorker-Specific Queues
Activity Dependency InjectionGive tools their clients, credentials, and connection pools cleanlyTemporal in Forty Minutes

What the catalog does not cover

The mapping is not total, and the gaps are worth naming: they are where agents genuinely differ from ordinary distributed systems.

Nondeterminism is inside the unit of work. Temporal's model assumes activities are nondeterministic and workflows are not. An agent puts the nondeterminism at the center of the decision-making: the model chooses which activity runs next. Everything about determinism in this book is about keeping that choice recorded rather than recomputed.

Correctness is not binary. A Temporal activity succeeds or fails. An agent turn can succeed and still be wrong, which no retry policy detects. That gap is what Part XIV exists to fill.

Cost is a first-class failure mode. A retry loop in a conventional system wastes CPU. A retry loop around a model call spends money at a rate worth alerting on. See Cost Engineering.

On this page