|
English

When teams ask me which workflow framework to choose, I ask them a different question first: which patterns will you actually run? After three years of building AI orchestration systems for regulated enterprises, I've come to believe that the framework debate (Temporal vs. Airflow vs. LangGraph vs. Step Functions) is downstream of a more important question. The patterns are the design language. The frameworks are just dialects of that language.

This article is a reference catalogue of the six AI workflow orchestration patterns that show up over and over in real production systems. I'm naming the set deliberately so we can talk about it without ambiguity: Fan-Out-Reduce, Cascade, Speculative-Race, Saga-with-Rollback, Human-Veto, and Cron-Plus-Event. Each pattern has a job description, a cost-latency profile, a set of failure modes, and a use-case fit. None of them is universal. Most production workflows compose two or three.

If you're building agentic systems, scheduled AI pipelines, or human-supervised automations in 2026, this is the vocabulary you need.

Why Workflow Patterns Matter More Than Tools

The 2026 orchestration landscape is crowded. Temporal, Airflow, Dagster, LangGraph, Step Functions, Inngest, Prefect, Restate, Vercel Workflows, n8n, and Swfte Workflows each compete for the same job. They differ in primitives, runtime guarantees, and developer experience, but they all converge on roughly the same set of execution patterns. A team that knows the patterns can move between frameworks. A team that knows only one framework's idioms gets stuck whenever the framework's defaults stop fitting.

Patterns matter for three concrete reasons:

  1. Cost shape. A workflow's pattern determines whether you pay one model fee per run, three, or a dozen. The wrong pattern multiplies your inference bill by 10x without anyone noticing.
  2. Failure surface. Each pattern has a characteristic failure mode (partial fan-out, cascade misclassification, saga rollback storm). You can only design compensating logic if you know which mode you're guarding against.
  3. Latency contract. Some patterns trade cost for speed (Speculative-Race). Others trade speed for safety (Human-Veto). The pattern is the contract you give the product team.

A 2026 industry guide notes that the winning architecture for the year combines a deterministic backbone with intelligence deployed at specific steps — agents are invoked intentionally by the flow, and control always returns to the backbone when an agent completes (Stack AI, 2026). Patterns are how you describe that backbone.

The 6-Pattern Catalogue at a Glance

PatternShapePrimary GoalCost (rel.)Latency (rel.)Best For
Fan-Out-Reduceparallel + mergequality via consensus4.0x1.5xhigh-stakes single decisions
Cascadetiered fallbackcost reduction1.4x1.6xbulk classification
Speculative-Raceparallel + first-winslatency reduction3.0x0.6xuser-facing latency-critical
Saga-with-Rollbacksequential + compensatedata integrity across systems2.0x1.1xmulti-system writes
Human-Vetogate before commitsafety + compliance2.0xvariableregulated decisions
Cron-Plus-Eventscheduled + triggeredfreshness without polling1.5x3.0xcontent + monitoring

Baseline of 1.0x is a single synchronous LLM call. Cost includes inference, orchestration overhead, and idle compute. Latency is end-to-end wall-clock from trigger to terminal output. The numbers come from internal Swfte benchmarks across roughly 12,000 production workflow runs in Q1 2026; your mileage will vary by model mix and infrastructure.

The rest of this article walks through each pattern in depth.

Pattern 1: Fan-Out-Reduce

Definition. Dispatch the same task to N workers in parallel, then merge their outputs through a deterministic reducer (consensus vote, weighted average, evaluator model, or pick-best-by-score). The pattern trades inference cost for output quality.

Fan-Out-Reduce
              ┌─▶ Worker A (Claude 4.7) ─┐
   Trigger ───┼─▶ Worker B (GPT-5.5)   ─┼─▶ Reducer (consensus) ─▶ Output
              └─▶ Worker C (Gemini 3.1) ─┘

When to use it. High-stakes single decisions where the cost of being wrong dominates the cost of three model calls. Examples: contract clause extraction, medical coding, fraud determinations, judgement-heavy summarisation. Also valuable when you want vendor diversity — if Anthropic has an outage, your GPT and Gemini workers still produce an answer.

When NOT to use it. Bulk pipelines where per-record cost matters. Tasks where the models tend to share the same biases (in which case three models agreeing tells you nothing new). Workflows where the reducer would have to be more complex than the original task.

Cost/latency profile. Cost is roughly N times a single call plus reducer overhead — usually around 4x for a three-worker pattern with a small reducer. Latency is the maximum worker latency plus the reducer, around 1.5x baseline because the slowest worker dominates.

Failure modes.

  • Tie-break starvation: the reducer can't pick a winner and either falls back to a default or escalates.
  • Silent agreement bias: all three workers were trained on the same data and agree confidently on a wrong answer.
  • Tail latency amplification: P99 latency tracks the slowest of N workers, so adding workers makes the long tail worse.

Real-world example. A legal-tech client runs every clause extraction through three model providers and accepts only when at least two agree on the extraction span. Disagreements queue for a human reviewer (we'll see this composition in section 11). Their false-positive rate dropped 73% versus a single-call baseline; their inference bill rose 280%, and their lawyers stopped having to triple-check the AI's output. That trade was a clear win for them.

Pattern 2: Cascade

Definition. Try the cheapest model first. If its confidence (self-reported, calibrator-based, or evaluator-based) clears a threshold, accept and exit. Otherwise escalate to the next tier. Repeat until you accept or run out of tiers.

Cascade
   Trigger ─▶ Cheap (Haiku) ─[confidence>0.85]─▶ Output
                  └─[else]─▶ Mid (Sonnet) ─[confidence>0.85]─▶ Output
                                    └─[else]─▶ Strong (Opus) ─▶ Output

When to use it. Bulk workloads with a long tail of easy cases. Document classification, language detection, sentiment, intent recognition, simple Q&A from a known corpus. Whenever a junior model can clearly handle 60-90% of traffic and only the hard residue needs the senior model.

When NOT to use it. Tasks where confidence is poorly calibrated. If the cheap model is wrong but confident, you've just paid less to be wrong faster. Also avoid for tasks where the senior model is needed for nearly every case — the cascade overhead becomes pure waste.

Cost/latency profile. Total cost depends on the escalation rate. A cascade where 80% of traffic clears at the cheap tier and 15% at the mid tier and 5% goes to the strong tier costs roughly 1.4x a pure-cheap baseline but matches the strong-tier accuracy on 95%+ of inputs. Latency averages around 1.6x baseline because escalations stack sequentially. We covered the underlying routing math in intelligent LLM routing for multi-model AI and the next-generation router approach in mixture-of-routers LLM routing.

Failure modes.

  • Overconfidence at tier 1: miscalibrated cheap models accept and exit when they should have escalated.
  • Under-escalation: too-strict thresholds kick everything to the senior tier and erase the cost savings.
  • Cost cliffs: a single noisy input domain can spike the senior-tier ratio overnight.

Real-world example. A content moderation team routes 92% of moderation calls to a small classifier; only the 8% with low calibrator confidence escalate to a frontier model. They cut moderation cost by 71% and held precision at 99.4%. Their key engineering investment was the calibrator, not the cascade itself.

Pattern 3: Speculative-Race

Definition. Fire the same task at two or more models in parallel and accept the first valid response. Cancel the laggards. The pattern trades cost for tail-latency reduction — you pay for N inferences and only consume one.

Speculative-Race
   Trigger ─┬─▶ Model A ─┐
            └─▶ Model B ─┴─▶ first-to-finish wins; cancel loser

When to use it. User-facing surfaces where tail latency is a product metric. Real-time chat, search autocomplete, voice agents, in-product copilots. Also useful as a hedge against single-provider outages — if one provider is slow today, the other wins.

When NOT to use it. Anything where outputs need to be reproducible (you don't know which model will win this run versus next). Anything where outputs differ qualitatively between models — you'll get user-visible inconsistency. Cost-sensitive batch jobs.

Cost/latency profile. Cost is N times the single-call baseline minus whatever savings you get from cancelling laggards (in practice cancellation rarely saves more than 20% because the bulk of inference cost is fixed at request time). Latency is roughly the minimum of the two models' P50s, often 0.5-0.7x baseline. Sherlock-style speculative execution research from late 2025 reports comparable latency wins on multi-step agentic tasks (Sherlock, arXiv 2511.00330).

Failure modes.

  • Inconsistent output: the same prompt yields different valid answers depending on which model wins.
  • Wasted spend: every cancelled call is money you paid for nothing.
  • Coordination bugs: the cancel signal arrives after the laggard already billed you.

Real-world example. A voice-agent platform races GPT and Claude on every turn. Their P95 turn latency dropped from 1.4s to 0.78s. Their inference cost rose 2.6x. For a real-time conversational product, that was the right trade.

Pattern 4: Saga-with-Rollback

Definition. A multi-step workflow that touches multiple systems and provides per-step compensating actions. If step N fails, the saga executes the inverse actions for steps N-1, N-2, ..., 1. The compensating actions don't restore the prior state perfectly — they compensate semantically.

Saga-with-Rollback
   Step 1: charge card ──▶ Step 2: reserve inventory ──▶ Step 3: book courier
       │                          │                              │
       │ on fail of any step:     │                              │
       └──── refund card ◀── release inventory ◀── cancel courier ──── ROLLBACK

When to use it. AI workflows that perform writes across multiple systems of record — issuing refunds, creating tickets, posting to ledgers, sending emails, updating CRM records, calling third-party APIs. Whenever atomicity matters and a database transaction won't span the systems.

When NOT to use it. Read-only workflows. Workflows where steps are idempotent and naturally retryable (in those cases retry is simpler and cheaper than rollback). Workflows whose compensating actions are themselves likely to fail — saga only works if you can write reliable inverses.

Cost/latency profile. Roughly 2x baseline cost on average because most runs complete without rollback, but the failure paths are expensive. Latency on the success path is close to a normal sequential workflow (~1.1x). On the failure path, latency depends on how many steps must be undone. The saga pattern was canonised for distributed systems years ago; AWS's prescriptive guidance on agentic systems explicitly recommends it for multi-system AI writes (AWS Saga Orchestration).

Failure modes.

  • Compensation failure: the rollback step itself fails. You now have inconsistent state and need a higher-order recovery.
  • Partial visibility: an external system briefly saw the un-rolled-back state. Customers may have already received an email about the order.
  • Compensation drift: the inverse action no longer cleanly undoes the forward action because data has changed downstream.

Real-world example. An insurance claims AI dispatcher writes to a claims system, a payments system, and a notification system. When the notification step fails (recipient blocked, template invalid), it issues a stop-payment compensation and a claim-cancellation compensation, then surfaces the original notification failure to a human. The system processes about 18,000 claims a day with a saga-rollback rate of 0.3% — small enough that human review of every rollback is feasible.

Pattern 5: Human-Veto

Definition. An automated workflow runs to completion but pauses immediately before a high-impact action and waits for explicit human approval, rejection, or modification. The action commits only on approval. On rejection or timeout, the workflow either rolls back (combine with Saga) or routes to an escalation queue.

Human-Veto
   Trigger ─▶ Plan ─▶ Draft ─▶ [PAUSE: human review] ─▶ Commit
                                       └─[reject]─▶ revise / abandon / escalate

When to use it. High-impact decisions where automation is desirable but unilateral execution is not. Outbound communications above a stake threshold, financial transactions above a limit, customer-facing escalations, medical recommendations, anything subject to regulatory approval audit. The 2026 EU AI Act enforcement regime essentially requires this pattern for many enterprise use cases — auditors will ask why you chose human-in-the-loop or human-on-the-loop for each workflow (Strata.io, 2026).

When NOT to use it. High-volume, low-stakes workflows. Real-time systems. Anything where human review queues will exceed reviewer capacity by more than 2x — the pattern degrades into rubber-stamping when reviewers face decision fatigue.

Cost/latency profile. Inference cost is around 1.2x baseline (the AI does extra structuring work to make review easier). Total operational cost rises because humans are expensive — typical cost-per-decision is 10-50x the inference cost depending on reviewer salary band. End-to-end latency is variable: median may be minutes, P99 may be days.

Failure modes.

  • Reviewer fatigue: humans rubber-stamp at scale. Approval rate creeps to 99%+ and the veto becomes ceremonial.
  • Queue overflow: decisions pile up; SLAs miss; the AI's outputs go stale before review.
  • Skipped reviews under pressure: in incidents, teams disable the gate "temporarily" and forget to re-enable.

Real-world example. A B2B SaaS support team uses an AI agent to draft all customer refund decisions but requires human approval for refunds over $250. The AI handles 96% of refund volume autonomously and produces drafts for the remaining 4%, where a human approves, modifies, or rejects. Average human time-per-review fell from 11 minutes to 90 seconds. Rejection rate is 14% — high enough that the gate is doing real work.

Pattern 6: Cron-Plus-Event

Definition. A workflow scheduled on a periodic cron AND wired to event triggers. Either source can fire the same workflow body. The scheduled cadence guarantees freshness even when no events arrive; the event triggers guarantee responsiveness when they do.

Cron-Plus-Event
   Cron (every 6h) ─┐
                    ├─▶ Workflow body ─▶ Output / state update
   Event (webhook) ─┘

When to use it. Content pipelines (publish on schedule but also when source content updates). Monitoring and alerting (poll on schedule but also on webhook signals). Re-indexing systems. Cache warming. Anywhere stale state is acceptable for a window but not indefinitely. Temporal's Schedules feature and Airflow's hybrid sensors both implement this idea (Temporal blog).

When NOT to use it. Truly real-time systems where a 6-hour cron fallback is meaningless. Pure batch systems where events would only add noise. Workflows whose body is non-idempotent — running them twice (once on cron, once on event) corrupts state.

Cost/latency profile. Cost is roughly 1.5x a pure-event baseline because the cron path adds redundant invocations. Latency is bimodal: event-driven invocations are sub-second, scheduled invocations are by definition up to one cron-period stale.

Failure modes.

  • Double-execution: event fires while a cron run is still in flight.
  • Quiet event-source failure: the event channel breaks, cron silently masks the breakage, and you don't notice for weeks.
  • Cron drift: under load, the scheduler skips ticks; freshness guarantees you advertised quietly fail.

Real-world example. A content generation pipeline runs on a 4-hour cron and fires immediately on RSS feed updates. When the feed source went down for 11 days, the cron path kept the pipeline alive on cached content; the team only noticed because the publish rate dropped. Without the cron fallback, the outage would have been silent until customers complained.

Cost vs Latency Trade-Off Matrix

Cost vs Latency Profile by Pattern (relative to single-call baseline = 1.0)
Pattern              Cost    Latency
Single Call          █       █                  1.0  /  1.0
Cascade              ██      █▌                 1.4  /  1.6
Cron-Plus-Event      ██      ███                1.5  /  3.0
Saga-with-Rollback   ███     █                  2.0  /  1.1
Human-Veto           ███     █████              2.0  /  variable
Fan-Out-Reduce       █████   █▌                 4.0  /  1.5
Speculative-Race     ████    ▌                  3.0  /  0.6  (best latency)
Source: Swfte pattern benchmarks, May 2026

A second view — the reliability gain you buy with the cost overhead:

Reliability Gain vs Cost Overhead (higher gain = better; rightward = more cost)
Pattern              Reliability Gain    Cost Overhead
Single Call          █                   ▌              baseline
Speculative-Race     ██                  ███            +200% cost / +20% reliability
Cascade              ██▌                 █▌             +40% cost / +25% reliability
Cron-Plus-Event      ███                 ██             +50% cost / +30% reliability
Saga-with-Rollback   ████                ███            +100% cost / +40% reliability
Fan-Out-Reduce       █████               █████          +300% cost / +55% reliability
Human-Veto           ██████              ███▌           +100% cost / +70% reliability (regulatory)
Source: Swfte pattern benchmarks, May 2026 (reliability = task success rate vs single-call baseline)

The takeaway: cost and reliability are not linear. Human-Veto delivers the largest reliability win per dollar but only if the workflow is gated rarely enough to matter. Speculative-Race delivers the worst reliability ROI but the best latency. Pick the pattern that matches the metric your business cares about.

Pattern Selection by Use Case

Use CaseBest PatternSecond ChoiceAvoid
Customer support reply draftingCascadeHuman-VetoFan-Out-Reduce
Refund / payment authorisationHuman-Veto + SagaSaga-with-RollbackSpeculative-Race
Real-time voice agentSpeculative-RaceCascadeHuman-Veto
Bulk document classificationCascadeFan-Out-ReduceSaga-with-Rollback
Contract clause extractionFan-Out-ReduceHuman-VetoCron-Plus-Event
Content publishing pipelineCron-Plus-EventCascadeSpeculative-Race
Multi-system order fulfilmentSaga-with-RollbackHuman-VetoFan-Out-Reduce
Fraud determinationFan-Out-Reduce + Human-VetoCascadeSpeculative-Race

The pairings show that real workflows almost always combine patterns. Fraud determination wants the consensus of Fan-Out-Reduce and the auditability of Human-Veto. Refund authorisation wants the rollback safety of Saga and the gate of Human-Veto. We discuss multi-pattern composition in multi-agent AI systems for the enterprise and in our AI automation workflow templates library.

Failure-Mode Comparison

PatternMost Common FailureDetection SignalMitigation
Fan-Out-Reducesilent agreement biaslow diversity score across worker outputsinject deliberately diverse models / temperatures
Cascadeoverconfident cheap-tier acceptancedrift in tier-1 accuracy on a labelled holdoutcalibrator retrained weekly, threshold guardrails
Speculative-Raceinconsistent outputs across runsreproducibility test failspin a deterministic winner for replays / audits
Saga-with-Rollbackcompensation failurerollback success rate drops below 99%manual escalation queue + alarm on rollback fail
Human-Vetoreviewer fatigue / rubber-stampingapproval rate trends to 99%+rotate reviewers, sample audits, queue depth SLO
Cron-Plus-Eventquiet event-source failureevent count vs historical baseline anomalydead-event-source alarm independent of cron path

Failure modes are not theoretical. Sherlock-style research on agentic execution explicitly notes that speculative downstream tasks must roll back when verification fails — a system without rollback is a system with silent corruption (Sherlock, arXiv 2511.00330).

Combining Patterns

The most reliable production systems I've reviewed in 2026 use 2-3 patterns composed deliberately:

Cascade + Human-Veto. The cheap-tier handles the easy 80%, the senior-tier handles the hard 15%, and the residual 5% with low confidence at every tier escalates to a human. Total inference spend is about 1.6x a pure-cheap baseline; total reviewer load is 5% of input volume. This is the workhorse for content moderation and triage queues.

Fan-Out-Reduce + Human-Veto. The consensus output is presented to the human along with the disagreement structure. Reviewers gate only on disagreement (the obvious-consensus cases auto-commit). Reviewer load drops to 8-15% of input volume; reliability stays high.

Saga-with-Rollback + Cron-Plus-Event. The saga performs the multi-system writes; the cron-plus-event trigger ensures the saga runs both reactively (when an event arrives) and on a schedule (to catch any missed events). The cron path is the saga's safety net.

Speculative-Race + Cascade. Fire the cheap-tier model speculatively while the cascade decides whether to escalate; if the cheap-tier wins both the race and the confidence check, you get sub-baseline latency at near-baseline cost.

The Practical Guide for Designing Production-Grade Agentic AI Workflows treats this kind of composition as the default architecture for 2026 systems (arXiv 2512.08769). Vellum's 2026 ultimate guide to agentic workflows similarly catalogues hybrid topologies as the dominant production shape (Vellum, 2026).

Pattern Implementation Notes by Framework

FrameworkFan-Out-ReduceCascadeSpeculative-RaceSagaHuman-VetoCron-Plus-Event
Temporalparallel activities + reducerconditional activity chainparallel + cancellationfirst-classsignals + waitForSchedules + signals
AirflowTaskGroup + downstream mergebranching operatorhard (no native cancel)manual compensation taskssensor + manual markDAG schedule + sensor
LangGraphparallel nodes + merge nodeconditional edgesmanual race + abortmanualinterrupt() + resumeexternal scheduler
Step FunctionsParallel state + reducerChoice state chainParallel + abortSaga primitive (recent)Activity waitEventBridge schedule
Swfte Workflowsfirst-class node typefirst-class node typefirst-class node typefirst-class node typefirst-class node typefirst-class node type

The pattern coverage is uneven across frameworks, which is why we built Swfte Workflows around these six patterns as first-class node types — so the pattern is the unit of design, not a workaround you assemble by hand.

What to Do This Quarter

Five-to-seven actions for architecture leads who want to put this catalogue to work in the next 12 weeks:

  1. Audit your existing workflows against the catalogue. Tag each production workflow with one or two pattern names. Workflows that don't fit any pattern are usually disguised mistakes — they tend to be the ones that page on-call.
  2. Pick one Cascade target. Cascade is the highest-ROI pattern to introduce because it pays for itself within weeks. Find a workflow that runs >100k times a month on a frontier model and add a cheap-tier with a confidence calibrator.
  3. Add Saga-with-Rollback to your top 3 multi-system writes. If your AI writes to a payments system, a CRM, and an email system without compensating actions, you have unacknowledged technical debt. Pick the top 3 by blast radius.
  4. Define Human-Veto SLOs. For every gate in production, declare queue-depth and time-to-decision targets. Without SLOs the gate decays into rubber-stamping within 6-9 months.
  5. Wire Cron-Plus-Event for your top 5 event-driven pipelines. A cron fallback at 4-24x your event cadence is cheap insurance against silent event-source failure. Make it a checklist item for every new event-driven pipeline.
  6. Pick one workflow to instrument with Speculative-Race. Only one. The cost overhead is real, so pick a user-facing surface where latency is on the product team's roadmap.
  7. Document the patterns in your engineering wiki. Use the names. The single biggest lift my teams have gotten from this catalogue is shared vocabulary — when an architect says "this needs Cascade plus Human-Veto," the engineers know what to build.

The patterns aren't novel — saga is decades old, cron is older, cascade and fan-out have research lineages going back years. What's new in 2026 is that AI workflows make the pattern choice cost-visible. Every wrong pattern costs you measurable money. Every right one buys you measurable reliability. Treat the catalogue as a design discipline, not a cookbook, and the rest follows.

Sources:

0
0
0
0

Enjoyed this article?

Get more insights on AI and enterprise automation delivered to your inbox.