Fan-out, Fan-in, Barriers, and Diamond Graphs

Use fan-out when nodes are independent. Use barriers only when a stage needs the full set. Recognize the diamond topology.

~4hparallel-agentsfanoutfanin
Learning objectives
  • Use fan-out when nodes are independent.
  • Use barriers only when a stage needs the full set.
  • Recognize the diamond topology.
Note

This course extends the existing Agentic Engineering track. The focus is not "more prompting"; it is shaping the work: loops, fan-out, fan-in, routing, verification, cost, and convergence.

The diamond

The workhorse graph is split → parallel work → merge. Fan out for breadth, reduce with code, synthesize with an agent only when global judgment is required.

const raw = await Promise.all(sources.map(s => researchNode(s)));
const evidence = raw.filter(Boolean).flatMap(r => r.items);
const report = await synthesizeNode(evidence);

Barrier discipline

A barrier waits for the slowest upstream node. Use it for cross-set dedupe, ranking, global synthesis, and early-exit logic. Avoid it for per-item transforms that could stream as a pipeline.

Recap

A loop is a controlled cycle. A graph is the work shape around that cycle. The production skill is knowing which parts need model judgment, which parts are deterministic edges, and where confidence gates belong.

Fan-out, Fan-in, Barriers, and Diamond Graphs — Exercises

Exercise 1 — Draw the hidden graph

Take a linear workflow you already use, such as "research sources → summarize → compare → write report". Draw every step as a node. Then remove every arrow where the downstream step does not consume upstream data.

Reference solution

A strong answer identifies independent nodes and labels edges by data, not by time. Example: "source A research" and "source B research" are independent; both feed a deterministic reduce step; the reduced evidence feeds synthesis.

Exercise 2 — Write node contracts

For three nodes in your graph, define:

  • input shape
  • output shape
  • failure mode
  • downstream consumer
Reference solution

Good contracts are narrow: { topic, sourceUrl } in; { claims: [{ text, sourceUrl, confidence }] } out. Avoid "return a useful summary" because the next node cannot validate it.

Exercise 3 — Add one safety gate

Place a verifier, schema validator, budget check, or human approval gate on the edge most likely to poison downstream work.

Reference solution

For a research graph, gate unsupported claims before synthesis. For a code graph, gate findings with reproduction or a second reviewer before reporting.