# Nodes and Connections

## Node Palette

<table data-header-hidden data-full-width="false"><thead><tr><th width="154.14453125">Card</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="https://1631869959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpQPWQHMckXtXYemavYhN%2Fuploads%2FY0AH7qdyrtTSURDqVO7V%2FNode%20Person%20Large.svg?alt=media&#x26;token=5d7b8194-c921-42dd-866d-5ca17f6c00f0" alt=""></td><td><i class="fa-user">:user:</i> <strong>Person</strong><br>Customers or stakeholders</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><img src="https://1631869959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpQPWQHMckXtXYemavYhN%2Fuploads%2FhPiIKwbB65xOd88qFQGe%2FFrame%2043.svg?alt=media&#x26;token=5d30c9c0-06ec-4854-98c1-c01b491e75b7" alt=""></td><td><p><i class="fa-diamond">:diamond:</i> <strong>Entity</strong></p><p>Business entities or AIs</p></td><td>You need access for AI agents, 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="https://1631869959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpQPWQHMckXtXYemavYhN%2Fuploads%2FMjecswrzyLS8zEMDRzJM%2FFrame%2044.svg?alt=media&#x26;token=77943006-dab5-4179-a2a6-66b5f67388bb" 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="https://1631869959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpQPWQHMckXtXYemavYhN%2Fuploads%2FN0D40nJLmdjr79C44ay8%2FFrame%2045.svg?alt=media&#x26;token=bb76b52f-0b45-4540-943a-43dc3b7af826" alt=""></td><td><i class="fa-gear">:gear:</i> <strong>Process</strong><br>Business processes or Agentic workflows</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="https://1631869959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpQPWQHMckXtXYemavYhN%2Fuploads%2FVWH9h7LA5hCviQT9pfXa%2FFrame%2046.svg?alt=media&#x26;token=b887eeab-9c82-4194-a7bf-a06bac0c80de" 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="https://1631869959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpQPWQHMckXtXYemavYhN%2Fuploads%2FU21ALjbXNMiucywiyurg%2FFrame%2047.svg?alt=media&#x26;token=4ab94dfb-d867-41c6-b5a8-6454d84a5452" 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

{% hint style="warning" icon="lightbulb" %}
If you are unsure, you can use Data Stream.
{% endhint %}

<table data-header-hidden><thead><tr><th width="152.171875"></th><th width="271.23828125"></th><th width="163.98046875"></th><th></th></tr></thead><tbody><tr><td><p><strong>Async Comms</strong></p><p><img src="https://1631869959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpQPWQHMckXtXYemavYhN%2Fuploads%2FxVpaRVULrj0WrWaHkryU%2FScreenshot%202026-02-24%20at%2012.46.56%E2%80%AFPM.png?alt=media&#x26;token=dec723a8-2bb6-44cd-a0ed-1ac999abf643" 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="https://1631869959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpQPWQHMckXtXYemavYhN%2Fuploads%2FFyhffqgtU9IvBEXO2jrX%2FScreenshot%202026-02-24%20at%2012.46.59%E2%80%AFPM.png?alt=media&#x26;token=efa3ae1a-bd48-46be-92d9-f72d0f8ad2c5" 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="https://1631869959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpQPWQHMckXtXYemavYhN%2Fuploads%2Fujjw9CIyrnjeVizmmESM%2FScreenshot%202026-02-24%20at%2012.47.03%E2%80%AFPM.png?alt=media&#x26;token=938ea3eb-dad0-4605-b08e-c8af88897183" 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="https://1631869959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpQPWQHMckXtXYemavYhN%2Fuploads%2F7yQiN7sFDW0KzWfPqWKL%2FScreenshot%202026-02-24%20at%2012.47.07%E2%80%AFPM.png?alt=media&#x26;token=52cbe24a-4167-4f5d-8bd0-204d45d1b1fe" 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="https://1631869959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpQPWQHMckXtXYemavYhN%2Fuploads%2F5kCCYGfLOqT84aLKrKNi%2FScreenshot%202026-02-24%20at%2012.47.11%E2%80%AFPM.png?alt=media&#x26;token=f2c8bb4c-e225-4c8f-acbb-9381fca274cd" 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="https://1631869959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpQPWQHMckXtXYemavYhN%2Fuploads%2Fhajy5So8FRCfJY8f6xpv%2FScreenshot%202026-02-24%20at%2012.47.16%E2%80%AFPM.png?alt=media&#x26;token=8a0e2b2d-e4de-4c16-a61d-1e7c6c4ac7d2" 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>
