This page explains the key differences between graph-based and channel-based messaging in the Aranya system.
Graph data refers to information that is stored directly within the Aranya graph structure. This data:
Channel data refers to information that flows through an Aranya channel but is not stored within the graph structure itself. This data:
Aranya provides interfaces for secure peer-to-peer data exchange, guaranteeing data delivery between endpoints, without the need for a centralized infrastructure governing your data. There are two ways data can be exchanged between endpoints:
Low-Throughput Broadcast (On-Graph): Guaranteeing eventual delivery of your data to your endpoints through perpetuated syncing between peers to create a consistent end state. This broadcast can be one endpoint to one endpoint or one-to-many endpoints.
High-Throughput (Off-Graph): Lowest latency, bulk encryption of your data through secure channels.
The figure below outlines the data flow between two endpoints, both with an Aranya instance and an application which will utilize the data. The two instances will leverage any transport that has been configured between the endpoints to exchange data via either the sync protocol (on-graph) or a high-throughput data exchange (off-graph), both defined below.
Figure: Endpoint Integration Overview Diagram
The attributes governing the use of on-graph and off-graph, and when each would be best to use, can be seen in Table 1 below.
Feature | On-Graph | Off-Graph |
---|---|---|
Primary Use (Core Functionality) |
Control plane (Aranya commands) | Data plane (data) |
Secondary Use (Other ways to use the core functionality in addition to main intention which may be advantageous for your use case) |
Limited Data plane messages (commands with embedded data) | Channel Control messages (ephemeral commands) |
Distribution | Broadcast across all sync connections (mesh and multi-hop support) | Point-to-point (no multi-hop) |
Throughput | Low throughput (100s of messages/sec depending on available transport and size of network) | High throughput (limited by transport) |
Latency | Higher latency due to overhead of graph operations | Low latency |
Direction | Unidirectional (two unidirectional sync connections used to sync bi-directionally) | Unidirectional |
Message Encryption (Application Layer) |
Optional (note, transport layer may provide its own encryption) | Automatic |
Resilience/Recovery | Highly resilient | No built-in recovery other than what is provided by underlying transport |
Authorization | Asymmetric keys | Symmetric key |
Authentication | Per message | Per message |
Table 1: Attributes of On-Graph vs. Off Graph Data Exchange