Skip to contentHome

Why Node Graphs Fall Apart at 15 Nodes

Node graphs look great in a product tour. Five nodes, a few arrows, clean execution order left to right. At fifteen nodes, you can't say what executes first without tracing individual wires with your cursor.

This is the state of workflow builders for AI applications. And it's not a new problem. It's the same issue visual programming has had for decades, dressed up with new icons.

Five nodes demo well. Fifteen don't.

Node graphs are the dominant paradigm for AI workflow builders. Zapier, n8n, Rivet, Dify, FlowiseAI, and dozens of others use some variation of the same idea: boxes connected by arrows on a freeform canvas.

At five nodes, this works. A PM can screenshot it for a deck. An engineer can trace the logic in seconds.

At fifteen nodes, three things break.

Crossing arrows obscure flow. When a conditional branch sends data to two processors, and those processors feed into a shared aggregator, the arrows cross. Add error handling paths and the canvas becomes a plate of spaghetti. You stop reading the graph and start tracing individual wires.

No hierarchy. Real workflows have phases: data collection, processing, validation, output. Node graphs flatten all of this into one spatial plane. A retry loop lives at the same visual level as the initial API call. There's no way to glance at a canvas and know which phase you're in.

Layout is arbitrary. Who decided this node goes top-left and that one goes bottom-right? The builder. Maybe left-to-right, maybe top-to-bottom, maybe wherever things fit. There is no enforced reading order, which means there is no shared mental model.

These aren't edge cases. They're the natural consequence of the paradigm. Every node graph hits these walls once the workflow gets real.

Linear lists fix readability, break expressiveness

Zapier's original interface took a different approach: a strict vertical list. Step 1, Step 2, Step 3. No canvas, no arrows, no spatial ambiguity.

This is more readable. The execution order is obvious. A junior developer can understand a 20-step Zap in minutes.

But linear lists can't express what real workflows need. Branching? You get a single if/else that nests awkwardly. Parallelism? Not representable. A step that fans out to three parallel API calls and waits for all of them before continuing? You either fake it with sequential calls or you leave the paradigm entirely.

The linear list optimizes for the simple case and punishes the complex one.

A phased layout worth exploring

I've been thinking about a middle path: a top-to-bottom phased layout. Not a free-form canvas, not a flat list.

The core idea: workflows are organized into phases. Each phase is a named group with a clear purpose, like "Collect Inputs," "Process Data," or "Validate and Route." Phases stack vertically, giving you an enforced reading order.

Within a phase, steps can be parallel or sequential. Two API calls that don't depend on each other sit side by side. A chain of dependent transformations stacks vertically within the phase. You get the expressiveness of a node graph without the spatial chaos.

Between phases, user decision points create natural pause boundaries. "If the confidence score is below 0.7, route to human review." These aren't conditional branches buried in the graph. They're visible gates, making the decision architecture scannable at a glance.

I want to be honest: this is a hypothesis, not a proven pattern. I haven't shipped it to users and measured comprehension time against a node graph. The failure modes I'm worried about: phases that grow too large, cross-phase dependencies that break the top-to-bottom flow, and enforced structure that frustrates users who genuinely think spatially.

What I do know is that the constraints feel right. Enforced reading order solves the arbitrary layout problem. Named phases solve the hierarchy problem. Contained parallelism within phases addresses the crossing-arrows problem, at least partially.

The pattern behind the problem

This isn't really about node graphs.

The most common UI paradigm in any domain is usually the one that demos best, not the one that works best at scale. Node graphs look great in a product tour. "Look, you can see the whole workflow!" Except you can't, once the workflow is real.

When designing for comprehension rather than demonstration, hierarchy almost always beats topology. People understand layered structures: chapters in a book, floors in a building, phases in a project. We don't naturally parse arbitrary graphs.

The question worth asking before you pick a representation: am I optimizing for the first five minutes of use, or the five hundredth? Those answers almost always point in different directions.