> For the complete documentation index, see [llms.txt](https://docs.atsign.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.atsign.com/atsign-ai-architect/atsign-ai-architect-overview/nodes-and-connections.md).

# Nodes and Connections

## Node Palette

These nodes map your workflow visually. Each one represents an actor in your app or agentic system.

<table data-header-hidden data-full-width="false"><thead><tr><th width="154.14453125">Node</th><th width="202.70703125">Description</th><th width="194.58984375">When to use</th><th>Example</th></tr></thead><tbody><tr><td><img src="/files/U0CxkeHH4gMbRkeW0gb7" alt=""></td><td><p><i class="fa-user">:user:</i> <strong>Person</strong><br>People or </p><p>stakeholders</p></td><td>You want to model people's actions, permissions, or decision points.</td><td><mark style="color:$info;">A person logging into an admin dashboard, approving a workflow, or sending a secure message.</mark></td></tr><tr><td><p><img src="/files/I5xfzK2hPxCA3arejQ7F" alt="" data-size="original"></p><p></p></td><td><i class="fa-head-side-circuit">:head-side-circuit:</i> <strong>AI Agent</strong><br>AI Agent</td><td>You want to model automated reasoning, decision-making, or actions performed by an AI system.</td><td><mark style="color:$info;">An AI agent triaging support tickets, summarizing documents, or autonomously executing a multi-step workflow</mark></td></tr><tr><td><img src="/files/NGZvTKcPCtJtnZfl7hwA" alt=""></td><td><p><i class="fa-diamond">:diamond:</i> <strong>Entity</strong></p><p>Businesses, groups of people, etc.</p></td><td>You need access for companies, tenants, departments, identity domains.</td><td><mark style="color:$info;">A healthcare provider, an insurance company, or a tenant account applying its own access rules.</mark></td></tr><tr><td><img src="/files/XkHjnplCi6bjDcp4eWUa" alt=""></td><td><p><i class="fa-cube">:cube:</i> <strong>Thing</strong></p><p>Physical or digital objects/devices</p></td><td>You’re modelling hardware, IoT devices, sensors, servers, or edge components.</td><td><mark style="color:$info;">A smart meter sending readings, a kiosk receiving updates, or a server reporting health status.</mark></td></tr><tr><td><img src="/files/C6onnNDLuwIXtGdZnSjL" alt=""></td><td><i class="fa-gear">:gear:</i> <strong>Process</strong><br>Anything that processes, runs, or executes: an app, service, or workflow</td><td>You want to show business logic, transformations, or background tasks.</td><td><mark style="color:$info;">A data validation step, a policy enforcement engine, or a message-routing workflow.</mark></td></tr><tr><td><img src="/files/Iuz4PdVeFuGqBo2XhpNd" alt=""></td><td><i class="fa-rectangle">:rectangle:</i> <strong>API</strong><br>External systems or platform integrations</td><td>You’re integrating with third-party services or exposing functionality programmatically.</td><td><mark style="color:$info;">A payment processor API, mapping service, or internal microservice endpoint.</mark></td></tr><tr><td><img src="/files/o1IPZr8XpLSsjxBQJdHn" alt=""></td><td><i class="fa-plus">:plus:</i> <strong>Other</strong><br>Custom node type for anything else</td><td>You need to include concepts like storage, policies, models, or abstract systems.</td><td><mark style="color:$info;">A policy store, encryption module, AI model, or logging system.</mark></td></tr></tbody></table>

## Connection Types

These define how the nodes communicate with each other.

<table data-header-hidden><thead><tr><th width="152.171875">Connection</th><th width="271.23828125">Description</th><th width="169.0625">When to use</th><th>Example</th></tr></thead><tbody><tr><td><p><strong>Default</strong></p><p><img src="/files/xPyIavplmqGvZquZmC7C" alt="" data-size="original"></p></td><td><p>Unsure? </p><p>Let the LLM decide.</p></td><td>You're unsure which communication pattern fits, or the interaction doesn't clearly map to a specific type.</td><td><em><mark style="color:$info;">The LLM infers the best pattern based on context and intent</mark></em></td></tr><tr><td><p><strong>Async Comms</strong></p><p><img src="/files/aCr5SkO5MKV2qyKnJAS6" alt="" data-size="original"></p></td><td><p>Asynchronous, non-blocking communication where the sender does not wait for a response and the receiver does not need to be online.</p><p></p><p>Uses <code>Get/Put</code>  semantics.<br><a href="https://docs.atsign.com/tutorials/atsdk-tutorial/put-and-get-data-asynchronously">Read more here</a>.</p></td><td>Really handy if you cannot guarantee both the sender/ receiver will be online at the same time.</td><td><mark style="color:$info;">A device uploads data that is processed later, or a message is delivered when the recipient comes online.</mark></td></tr><tr><td><p><strong>Sync Comms</strong></p><p><img src="/files/I5Qh3BgBFnx7bblXqJw0" alt="" data-size="original"></p></td><td><p>Synchronous communication where the sender waits for an immediate response. <br></p><p>Uses <code>Notification</code>  (<a href="https://docs.atsign.com/tutorials/atsdk-tutorial/send-and-receive-data-synchronously#sending-and-receiving-data-in-near-real-time">Read more here</a>) semantics and/or <code>Get/Put</code>  (<a href="https://docs.atsign.com/tutorials/atsdk-tutorial/put-and-get-data-asynchronously">Read more here</a>) semantics.</p></td><td>You need real-time interaction or confirmation.</td><td><mark style="color:$info;">A user request that must return a result immediately, like fetching account details</mark><sub><mark style="color:$info;">.</mark></sub></td></tr><tr><td><p><strong>Notifications</strong></p><p><img src="/files/sSsevD3a4hCC52PgDGdq" alt=""></p></td><td><p>One-way signals used to alert or inform.</p><p></p><p>Uses <code>Notification</code>  semantics <a href="https://docs.atsign.com/tutorials/atsdk-tutorial/send-and-receive-data-synchronously#sending-and-receiving-data-in-near-real-time">Read more here</a>.</p></td><td><br>You need to notify without requiring a response.</td><td><mark style="color:$info;">Push notifications, system alerts, or status updates sent to users or services.</mark></td></tr><tr><td><h4><strong>RPC</strong></h4><p><img src="/files/h1amQ8mNRw7pLbixAeY0" alt=""></p><p></p></td><td><p>Structured request/response interactions between systems.<br>Ideal for complex operations where the other party may not be online at the time of execution (especially useful for policy-driven workflows).</p><p></p><p>Supported in the <code>SDK</code> semantics.<br><a href="https://docs.atsign.com/tutorials/atsdk-tutorial">Read more here</a>.</p></td><td>You want function-like calls across services with clear inputs and outputs.</td><td><mark style="color:$info;">Calling a billing service to calculate charges or a policy engine to validate access.</mark></td></tr><tr><td><p><strong>Data Stream</strong></p><p><img src="/files/E0RLIWMEPCnGWkwNo5Fn" alt=""></p></td><td>Ideal for long-running processes (such as LLM generation) where completion time is uncertain and results may need to stream incrementally.<br><br>Uses the <code>stream</code> (<a href="https://docs.atsign.com/sdk/events#monitor">Read more here</a>) semantics<br>or <code>notifications</code> (<a href="https://docs.atsign.com/tutorials/atsdk-tutorial/send-and-receive-data-synchronously#sending-and-receiving-data-in-near-real-time">Read more here</a>) semantics.</td><td>You’re handling live, ongoing data rather than discrete messages</td><td><mark style="color:$info;">Telemetry feeds, sensor data, logs, or real-time analytics pipelines.</mark></td></tr><tr><td><p><strong>TCP</strong></p><p><img src="/files/wgtvRAUeSmUkEDPcjD8a" alt=""></p></td><td><p>Low-level, persistent network connections that enable lower latency communication (e.g., NoPorts SSH, MCP servers).</p><p><br>Uses <code>Noports_Core</code> (<a href="https://pub.dev/packages/noports_core">Read more here</a>) semantics.</p></td><td>You need a fast end-to-end encrypted TCP connection with raw network speed.</td><td><mark style="color:$info;">A custom protocol, legacy integration, or long-lived secure connection.</mark></td></tr></tbody></table>
