At a glance
- Did you know
- Workflow engines like Temporal persist every step, so long processes survive crashes.
- Rule of thumb
- Keep each activity idempotent: the engine may retry it.
- Watch out
- History grows; replay cost; stuck workflows.
Its settings in ScaleMySystems
What you can change on it in the lab, and what each number does.
- Concurrency (slots)
- Calls it can work on at once (per instance when autoscaling). Needed slots ≈ calls per second × seconds each takes. Extra calls wait in the queue, then are rejected.
- Queue capacity
- Calls allowed to wait for a free slot. A bigger queue absorbs bursts but adds waiting time; 0 rejects straight away.
- vCPU
- CPU cores available. Needed ≈ calls per second × CPU per request ÷ 1000. Above about 90% busy it slows down and may crash.
- CPU per request (ms)
- CPU time each call burns. Part of what the component is; make the code cheaper to lower it.
- Latency (p50) (ms)
- Typical time one call takes here, before any calls it makes itself. Slots are held for this long.
- Latency (p99) (ms)
- The slowest 1% of calls. Callers must set their timeout above this or they cut off healthy calls.
- Timeout to dependencies (ms)
- How long it waits for each call it makes before giving up. Set it above the dependency’s p99 but low enough that a dead dependency does not hold every slot.
- Error rate
- Share of calls that fail on their own (bugs, declines, flaky tools). An agent that calls it on every step multiplies this.
- Quota (req/min)
- Calls allowed per minute (an API key or provider limit). Calls over it get 429s. Needed = calls per second × 60, with headroom.
- Calls per request (fan-out)
- How many times its outgoing calls run per request: agent steps, jobs, subagents. Load on everything behind it is multiplied by this, and any step failing fails the request.
Problems that start with it
- Order saga: the orchestrator is the bottleneck Each order runs a saga (reserve stock, charge, ship, with compensations) on a workflow engine with 2 vCPUs. Orders arrive at 900 a second.
- Workflow engine overload Deterministic steps run on a workflow engine with 6 slots (200 ms each) between the agent’s decisions.
- The workflow outgrows its history Long-running coding agents run on a durable workflow engine. Every step passes the whole conversation in and out, so the first step records 60 KB and each later one 40 KB more than the last. The engine terminates any run whose history passes 50 MB. Tasks take 50 steps.
Full lesson coming soon
Lessons are being added one component at a time: how it works, its settings, a live exercise to break and fix it, interview questions and a short check. See the Circuit breaker lesson for what one looks like.