[{"data":1,"prerenderedAt":279},["ShallowReactive",2],{"blog-why-wanderer-chatbots-dont-block-and-what-that-means-in-practice":3},{"id":4,"title":5,"body":6,"description":12,"extension":268,"meta":269,"navigation":273,"path":274,"seo":275,"sitemap":276,"stem":277,"__hash__":278},"blog\u002Fblog\u002Fwhy-wanderer-chatbots-dont-block-and-what-that-means-in-practice.md","Why Wanderer Chatbots Don't Block and What That Means in Practice",{"type":7,"value":8,"toc":258},"minimark",[9,13,21,28,33,36,39,42,46,57,60,95,98,102,105,108,128,131,135,141,144,170,173,177,183,194,197,211,218,222,229,232,235,238,251],[10,11,12],"p",{},"Most chatbots work like forms in disguise. They ask a question, wait for your answer, then move on. It's a simple, linear, turn-based pattern. You'll find it everywhere. But it's also a fundamental limitation that rarely gets questioned.",[10,14,15,16,20],{},"Wanderer works differently. Wanderer chatbots are ",[17,18,19],"strong",{},"non-blocking",", meaning the conversation keeps moving even while interactive elements are on screen. Buttons can appear, forms can be open, timers can be running, and the bot keeps talking, reacting, and adapting in parallel.",[10,22,23,24,27],{},"This isn't a workaround. It's a direct consequence of the underlying technology: ",[17,25,26],{},"Reactive Graph Sequencing (RGS)",".",[29,30,32],"h2",{"id":31},"the-blocking-problem","The blocking problem",[10,34,35],{},"In a traditional chatbot builder, every interactive element acts as a roadblock. When the bot shows a set of buttons, it stops. It waits. Nothing else happens until the user clicks. The entire conversation is paused by a single UI element.",[10,37,38],{},"For simple FAQ bots, that's fine. But as soon as you want something that responds to time, to external events, or to multiple things happening at once, the blocking model breaks down.",[10,40,41],{},"In a real conversation, the other person doesn't freeze mid-sentence just because they asked you a question. They might add context, react to your body language, or change the subject entirely. Traditional chatbots can't do any of this. Wanderer can.",[29,43,45],{"id":44},"how-wanderer-stays-non-blocking","How Wanderer stays non-blocking",[10,47,48,49,52,53,56],{},"The key is how Wanderer models conversations. Instead of a linear flow that moves from step A to step B to step C, Wanderer uses a ",[17,50,51],{},"reactive graph",". Every element in the conversation (messages, buttons, input fields) is a ",[17,54,55],{},"node"," in that graph. These nodes don't wait for each other unless you explicitly tell them to.",[10,58,59],{},"In practice, that means:",[61,62,63,71,77,83,89],"ul",{},[64,65,66,67,70],"li",{},"A ",[17,68,69],{},"question node"," can display suggestion buttons while the bot continues sending messages.",[64,72,66,73,76],{},[17,74,75],{},"form node"," with text inputs, number fields, or email fields can sit open while the graph processes other logic in the background.",[64,78,66,79,82],{},[17,80,81],{},"button node"," can fire a short event into the graph without interrupting anything else.",[64,84,66,85,88],{},[17,86,87],{},"select node"," can render a dynamic list of options from an array, and that list can update while the conversation moves on.",[64,90,66,91,94],{},[17,92,93],{},"panel node"," can display rich, interactive content using Markdown and Handlebars (live data, formatted output, embedded visuals) without halting the flow.",[10,96,97],{},"None of these elements block the graph. They participate in it.",[29,99,101],{"id":100},"a-concrete-example-the-quiz","A concrete example: the quiz",[10,103,104],{},"One of Wanderer's flow templates illustrates this well: a quiz game.",[10,106,107],{},"The bot asks a question and presents multiple-choice answers as buttons. A timer starts counting down. So far, nothing unusual. But here's where it gets interesting:",[61,109,110,116,122],{},[64,111,112,115],{},[17,113,114],{},"The 50\u002F50 joker:"," Press the joker button and two wrong answers disappear from the screen instantly, while the timer keeps running and the bot keeps talking.",[64,117,118,121],{},[17,119,120],{},"Time runs out:"," If the user doesn't answer in time, all answer buttons vanish. The bot announces that time is up. No stale buttons sitting around, no leftover UI from a previous state.",[64,123,124,127],{},[17,125,126],{},"The bot keeps talking throughout:"," While buttons appear and disappear and timers tick, the bot can still send messages. It can mention how much time is left, react to the joker being used, or comment on hesitation.",[10,129,130],{},"In a traditional chatbot builder, this would require custom code, complex workarounds, or simply wouldn't be possible. In Wanderer, it's just nodes in a graph.",[29,132,134],{"id":133},"why-this-matters-beyond-quizzes","Why this matters beyond quizzes",[10,136,137,138,27],{},"The quiz is a useful demo, but the underlying principle has broader applications. A non-blocking chatbot can react to ",[17,139,140],{},"events that don't originate from the user",[10,142,143],{},"A few examples:",[61,145,146,152,158,164],{},[64,147,148,151],{},[17,149,150],{},"E-commerce:"," A product goes out of stock while the user is configuring it. The bot reacts immediately without waiting for the user's next input.",[64,153,154,157],{},[17,155,156],{},"Customer support:"," A live agent joins the conversation. The bot adjusts seamlessly without resetting the flow.",[64,159,160,163],{},[17,161,162],{},"IoT and real-time data:"," A sensor triggers an alert. The bot notifies the user mid-conversation, regardless of what they were doing.",[64,165,166,169],{},[17,167,168],{},"Time-sensitive workflows:"," A deadline passes, a session expires, or a price changes, and the bot adapts in real time.",[10,171,172],{},"None of this works in a blocking model. There, the bot is frozen, waiting for a click that might never come while conditions change around it.",[29,174,176],{"id":175},"the-technology-reactive-graph-sequencing","The technology: Reactive Graph Sequencing",[10,178,179,180,182],{},"So how does this work under the hood? The answer is ",[17,181,26],{},", a paradigm that rethinks how chatbot logic is structured.",[10,184,185,186,189,190,193],{},"Traditional bots are ",[17,187,188],{},"event-driven",": something happens, then the bot decides what to do next. RGS is ",[17,191,192],{},"state-driven",": the graph continuously evaluates the current state of the entire conversation and determines what should be happening right now.",[10,195,196],{},"Concretely:",[61,198,199,202,205,208],{},[64,200,201],{},"Nodes can activate and deactivate based on conditions, not just user input.",[64,203,204],{},"Multiple branches of the graph can be active simultaneously.",[64,206,207],{},"UI elements appear and disappear as the state changes, with no cleanup code and no leftover artifacts.",[64,209,210],{},"The graph can re-sequence itself when conditions change.",[10,212,213,214,217],{},"All of this happens ",[17,215,216],{},"visually, in the browser, without writing code",". You connect nodes, define conditions using Must\u002FMay\u002FNot edges, and the graph handles the rest.",[29,219,221],{"id":220},"non-blocking-as-architecture-not-feature","Non-blocking as architecture, not feature",[10,223,224,225,228],{},"Most chatbot builders treat non-blocking behavior as an edge case, something you patch in when the default flow isn't enough. In Wanderer, non-blocking is the ",[17,226,227],{},"default",". It's not bolted on top; it's built into the architecture.",[10,230,231],{},"Every node is independent. Every node is reactive. Every node can respond to state changes from any source: user input, timers, external events, other nodes. The graph doesn't block because there's nothing to block. There's no single thread of execution waiting for a response. There's a graph that reacts to the world as it changes.",[10,233,234],{},"That's why Wanderer chatbots feel different. They don't wait, they don't freeze, and they don't leave stale buttons on the screen. They move with the conversation and with everything happening around it.",[236,237],"hr",{},[10,239,240],{},[241,242,243,244,27],"em",{},"Wanderer is a visual chatbot builder powered by Reactive Graph Sequencing. Build non-blocking, reactive conversations without code. Learn more at ",[245,246,250],"a",{"href":247,"rel":248},"https:\u002F\u002Fwanderer-flow.de",[249],"nofollow","wanderer-flow.de",[10,252,253,254],{},"Title image: ",[245,255,256],{"href":256,"rel":257},"https:\u002F\u002Funsplash.com\u002Fde\u002Ffotos\u002Fein-kleiner-wasserfall-mitten-im-wald-LTDMP9v21cc",[249],{"title":259,"searchDepth":260,"depth":260,"links":261},"",2,[262,263,264,265,266,267],{"id":31,"depth":260,"text":32},{"id":44,"depth":260,"text":45},{"id":100,"depth":260,"text":101},{"id":133,"depth":260,"text":134},{"id":175,"depth":260,"text":176},{"id":220,"depth":260,"text":221},"md",{"date":270,"author":271,"headerImage":272},"2026-04-04","Chris","\u002Fimages\u002Fblog\u002Fwater.jpg",true,"\u002Fblog\u002Fwhy-wanderer-chatbots-dont-block-and-what-that-means-in-practice",{"title":5,"description":12},{"loc":274},"blog\u002Fwhy-wanderer-chatbots-dont-block-and-what-that-means-in-practice","PHvfSjRMvM0x1KT1aAlzIfhJp-IktBhXWF7M4ot_tf8",1778182319491]