Back to the architecture page

How a message moves through a node

Everything inside the dashed boundary runs on one machine you control · last reviewed 2026-08-08

The spine runs across the centre: a message lands on the bus, the Dispatcher works out who it is for, an agent takes a turn, and the AI Gateway is the single door to a model. Everything else sits next to what it connects to. The Database is the foundation underneath. Pick a view below to follow one route at a time, because there is more than one and pretending otherwise would be the easiest way to mislead you.

VIEW
YOUR MACHINE NOTHING DIALS IN web chat (sync) records inbound new external mail directed model messages, events logs always if heavy picked up as a task start runs model (gateway) reply (mail/tg) fast path Web Chat live Email live Telegram live WhatsApp planned SMS planned Voice live Web Server routing + TLS Security login & access Office UI chats, tasks, docs Admin UI configure (Panel) Communication channel adapters in/out Outbound Sender sends replies (20s) Core the kernel THE BUS Messages dialogue Events system journal Events: every component writes here Dispatcher Intake notices new work, resolves who it is for Task watch delegated work, a safety net Runner launches free agents claims one at a time, fails closed FRONT OFFICE woken by a message Front desk BACK OFFICE woken by a task Coordinator Specialists AI Gateway one door to models Providers Anthropic Google OpenRouter OpenAI etc. via OpenRouter Memory remembers Planner tracks bigger jobs Documents docs & knowledge Tools what agents do Rules who-talks-to-whom Orchestrator the workflow engine Workflows started by the owner Flow agents the steps a workflow runs Database one Postgres cluster · registry, messages, append-only event log Monitoring services + metrics the model call is the only thing that leaves
Following an email. Choose the Email route view to light this path:
  1. The Email adapter polls the mailbox. Nothing is pushed to the machine; it dials out.
  2. Communication records the message in Core, which writes a row on the bus. Arrival and handling are separate steps.
  3. Intake notices the new row and resolves who it is for. It does not launch anything.
  4. The Runner claims that agent, fail closed, and wakes it. Two wakes for the same agent cannot run at once.
  5. The agent takes its turn with the tools it was granted, and reaches a model through the one AI Gateway.
  6. The reply is written back as a row. The Outbound Sender is the only thing that transmits, so every outgoing message exists as a record first.
Solid lines always happen. Dashed lines happen when needed: Rules apply on every turn, while Memory, Documents and Tools are pulled only when the work calls for them, and heavy jobs become a Planner task for the back office.
Not one path, four. Conversational channels take the fast path straight to the Dispatcher and answer synchronously, in seconds rather than the wake loop's tens of seconds. Mail and internal traffic take the wake loop above. Web chat is synchronous through the web server. Workflows are driven by the Orchestrator as a sequence of steps rather than a single agent turn. They differ in how an agent is invoked, not in where anything is stored: every one of them lands on the same bus and the same event log.
What is drawn in dashes is not built. Boxes marked planned have no adapter behind them today. They are on the map because leaving them off would be the more flattering choice and the less useful one. What is and is not connected is listed in full on the integrations page, and what the system does not do at all is on limits.