ballot-checkNodes and Connections

Not sure when to use what? Here are a few quick guidelines to help you choose:

Node Palette

Cover

user Person

Represents a human user interacting with the system.

When to use? You want to model people's actions, permissions, or decision points.


Example: A person logging into an admin dashboard, approving a workflow, or sending a secure message.

Cover

diamond Entity

Represents an organization, account, or logical grouping that owns data or enforces policy.

When to use? You need access for AI agents, companies, tenants, departments, identity domains.


Example: A healthcare provider, an insurance company, or a tenant account applying its own access rules.

Cover

cube Thing

Represents a physical or virtual device.

When to use? You’re modelling hardware, IoT devices, sensors, servers, or edge components.


Example: A smart meter sending readings, a kiosk receiving updates, or a server reporting health status.

Cover

gear-complex Process

Represents a computation, workflow, or automated action.

When to use? You want to show business logic, transformations, or background tasks.


Example: A data validation step, a policy enforcement engine, or a message-routing workflow.

Cover

rectangle-wide API

Represents an external or internal service interface.

When to use? You’re integrating with third-party services or exposing functionality programmatically.


Example: A payment processor API, mapping service, or internal microservice endpoint.

Cover

plus-large Other

A flexible catch-all for anything that doesn’t fit the standard categories.

When to use? You need to include concepts like storage, policies, models, or abstract systems.


Example: A policy store, encryption module, AI model, or logging system.

Connection Types

circle-info

If you are unsure, you can use Data Stream.

Async Comms

Asynchronous, non-blocking communication where the sender doesn’t wait for a response and/or the receiver may/may not be online.

Uses Get/Put Semantics (LINK @DARIA)

When to use? Really handy if you cannot guarantee both the sender/receiver will be online at the same time.


Example: A device uploads data that is processed later, or a message is delivered when the recipient comes online.

Sync Comms

Synchronous communication where the sender waits for an immediate response.

Uses Get/Put Semantics (LINK @DARIA)

When to use? You need real-time interaction or confirmation.


Example: A user request that must return a result immediately, like fetching account details.

Notifications

One-way signals used to alert or inform.

Uses the 'Notification' semantic

When to use? You need to notify without requiring a response.


Example: Push notifications, system alerts, or status updates sent to users or services.

Remote Procedure Calls.

Structured request/response interactions between systems.

For a complex job; not sure when the other party will be online. (Particularly good for policy)

In the SDK (colin will give me the link)

When to use? You want function-like calls across services with clear inputs and outputs.


Example: Calling a billing service to calculate charges or a policy engine to validate access.

Data Stream

Continuous or high-frequency data flow.

Uses the stream semantic. Useful for LLM and you are not sure when it will be finished.

When to use? You’re handling live, ongoing data rather than discrete messages.


Example:

Telemetry feeds, sensor data, logs, or real-time analytics pipelines.

Low-level, persistent network connections. Lower latency (ex: noports SSH, MCP server etc).

When to use? You need full control over transport or are modeling underlying network behavior.


Example:

A custom protocol, legacy integration, or long-lived secure connection.

Last updated