
2026-03-12 by Chris
Most flow builders execute your logic once and move on. RGS rebuilds the entire sequence every time your data changes.
Wanderer is a new kind of flow builder, and at its heart is a technology called RGS – Reactive Graph Sequencing. It solves a problem hiding in plain sight: workflows that need to adapt in real-time, not just react to events.
Graph sequencing takes a graph of nodes and edges and collapses it into a logical execution order. Which node runs after which? That's the sequencing problem.
RGS uses depth-first traversal combined with three types of directed edges:
Each edge type has a visual weight (thickness) representing its priority. With just these three primitives, you can draw any logical gate purely visually, and traversal collapses the visual representation into an executable sequence.
That's graph sequencing. But what makes it reactive?
Every node holds state – primitive values like booleans, strings, numbers. Outgoing edges can evaluate these states (e.g., "is this value true?") to determine which paths to take during traversal.
States can be pushed from one node to another via edges, partially or completely overwriting the target's state. They can also be changed by external processes – user input, API responses, database updates.
When a state changes, the graph doesn't just trigger the next node. It re-traverses the entire graph and generates a new sequence based on the updated data. The graph continuously adapts, collapsing into different execution paths as your data evolves.
Traditional flow builders connect nodes linearly or with branches. RGS adds control edges that operate outside the main traversal:
These enable non-local state manipulation, allowing flows that would require complex custom code in other tools.
A question I get a lot: but does it scale to 1,000 nodes and beyond? And my honest answer is: when was the last time you actually needed a conversational flow with 1,000 nodes? Most real-world flows – onboarding wizards, configurators, support bots, approval processes – live comfortably in the tens to low hundreds. The "scale" concern is usually imported from backend thinking, where 1,000 of anything is small. Interactive flows are a different beast: every node is a moment a human or system actually passes through.
But let's take the question seriously anyway. If the graph re-sequences on every state change, doesn't traversal become expensive?
It doesn't – by design. At the start, only the entry node is active, so traversal is minimal. As the user progresses, active branches grow, but never into the full graph. Every decision activates one path and kills others. The active traversal rises and then stabilizes. When a user backtracks, the previously active branch dies and a new one takes its place – the traversal shifts rather than accumulates. The active portion is always a fraction of the whole.
There's also a second kind of scaling that matters more than node count: logic scaling. In a traditional flow builder, every backtrack, every "what if the user changes their mind three steps ago," every invalidation rule is code you have to write. The graph grows linearly, but the logic glueing it together grows combinatorially. RGS absorbs that work. Backtracking, invalidation, re-routing on state change – the graph handles it because that's what re-sequencing is. You don't write the logic; you just change a state, and the traversal figures out the rest.
So the practical answer is: RGS scales fine for the flows people actually build, and more importantly, it scales down the amount of logic you have to maintain as the flow grows.
Imagine a chatbot for an e-commerce store. A customer is configuring a custom skateboard deck and has answered five questions about graphics, size, and wheels. Then an API call comes in: the deck just went out of stock.
In a traditional flow builder, you'd have to store the conversation state, manually interrupt the flow, write custom backtracking logic, and hope you didn't break anything.
With RGS, you simply change a state value (deckInStock: false). The graph re-sequences itself. Questions based on that deck become invalid, the traversal recalculates, and a new message appears:
"Sorry, the skateboard deck you're configuring just went out of stock. Can I help you with something else?"
This isn't a special case handled by custom code – it's how RGS works by default. The graph can invalidate earlier decisions and re-route the conversation based on new information.
Most automation tools are event-driven: something happens → trigger a workflow → execute a sequence → done.
RGS is state-driven: the graph continuously evaluates current state and generates the appropriate sequence. When state changes, the sequence changes. This enables new categories of workflows:
These are either impossible or require significant custom code elsewhere. With RGS, they're just graphs.
Wanderer is the first implementation of RGS, built on a few unconventional principles:
Yes. And that's the point. Where is the no-code promise then?
A typical "Send Message" node contains code that talks to an API, formats a string, handles a timeout. That code has to exist somewhere – something has to actually do the thing. My claim isn't that code disappears. It's that code disappears from the control flow layer.
Two very different kinds of code live in a typical flow builder:
In every flow builder I know, both kinds are mixed together – buried inside nodes, hidden in condition fields, scattered across expression strings. The graph shows the choreography; the actual logic lives in a hundred little fragments you have to click into to read.
In RGS, control flow code is gone. The graph is the control flow. State lives in nodes. Conditions live on edges, visually. AND, OR, NOT, XOR — you draw them. If you want to know why the flow went left instead of right, look at the canvas, not a config panel.
Action code stays. A node that sends an email has to know how to send an email. But that's a capsule – a clean, reusable adapter to the outside world. It doesn't know anything about your flow; it just does its job when the graph tells it to.
That's the trade: honest about action code, ruthless about control flow code. Most "no-code" tools get this backwards – they hide action code behind nice icons and then ask you to write control flow code in tiny text fields. That's exactly the wrong way around.
Because RGS handles both forward sequencing (what happens next) and retroactive adaptation (what should have happened), it opens up use cases that other tools struggle with:
State-driven graphs aren't new. Reactive programming, statecharts, dataflow languages — smart people have thought about this for decades. Let me be honest about where RGS borrows and where it does something different.
So what's actually new about RGS? Not any single ingredient – it's the combination: a visual editor where state lives in nodes, logic lives in edges, and the whole graph continuously re-sequences itself, in a tool a non-programmer can actually open and use. Statecharts gave us hierarchical state. Signals gave us continuous reactivity. Node-RED gave us a usable visual editor. RGS pulls those threads together and asks: what if the canvas itself was the runtime?
| Capability | RGS | Traditional Flow Builders | State Machines | Dataflow Languages |
|---|---|---|---|---|
| Retroactive re-sequencing | ✅ Native | ❌ Not possible | ⚠️ Limited (state transitions only) | ❌ Forward-only |
| Visual logic gates | ✅ Three edge types + priority | ⚠️ Basic branching | ❌ Code-based | ⚠️ Data connections |
| Non-local state manipulation | ✅ Push/Pull/Call edges | ❌ Linear only | ❌ Local state | ⚠️ Limited |
| Continuous re-evaluation | ✅ Automatic | ❌ Event-triggered | ⚠️ Transition-based | ✅ Reactive |
| No server required | ✅ Pure frontend | ❌ Cloud-based | ✅ Can be local | ⚠️ Varies |
RGS combines the visual simplicity of flow builders with the power of reactive programming and the expressiveness of state machines – without requiring a backend.
Visual programming has been "almost there" for decades. Flow builders handle simple automation well but break down when workflows need to adapt dynamically.
RGS bridges that gap. It gives you the expressiveness of code with the clarity of visual diagrams, and it handles complexity without requiring you to write complex logic. Most importantly, it makes reactive, adaptive workflows accessible – not just to developers who can write custom state management code, but to anyone who can draw a graph.
Wanderer is live and free to use. No signup, no installation. Open your browser, start building, and watch your graph come to life. See edges animate as the graph traverses. Watch nodes light up when they're active. Click any node to inspect its state in real-time. The complexity of Reactive Graph Sequencing becomes intuitive when you can see it happen.
Reactive Graph Sequencing isn't just a new algorithm – it's a new way of thinking about workflows. Instead of asking "what happens next?", RGS asks "what should be happening right now, given everything we know?"
That subtle shift unlocks workflows that adapt, reconsider, and optimize themselves in real-time. Wanderer is the first tool built on this foundation, but RGS is bigger than any single implementation. It's a technology for building systems that think in graphs and react to reality.
Title image: https://unsplash.com/de/fotos/flachwinkelfotografie-von-metallstrukturen-ZiQkhI7417A