Data Sharing Between Applications

io.Connect provides four specialized APIs for inter-application communication, each optimized for different data flow patterns. All mechanisms work identically across Browser and Desktop environments, and support web, .NET, Java, and COM applications.

Overview

Every data sharing mechanism in io.Connect routes through the platform's managed messaging infrastructure. This ensures governance, cross-technology reach, and real-time performance regardless of which communication pattern you choose.

Comparison

MechanismModelPersistenceControlFDC3 Equivalent
Shared ContextsStateful BroadcastYes — survives publisher disconnectProgrammaticApp Channels
ChannelsUser-driven BroadcastYes — per channelEnd User (via Channel Selector)User Channels
Interop MethodsRequest / Response (RPC)No — statelessProgrammatic
Interop StreamsPub / SubNo — active connection requiredProgrammatic
IntentsAction-based (verb + context)No — fire and handleUser or ProgrammaticFDC3 Intents

When to Use Each

Shared Contexts

Use Shared Contexts when multiple applications need to stay in sync with the same piece of state. For example, when a user selects a client in a list app and a portfolio app, order ticket, and activity log should all update automatically. The data persists in the platform even if the publishing app disconnects.

Channels

Use Channels when the user should control which applications are linked. Channels provide color-coded grouping (Red, Green, Blue, etc.) via a built-in Channel Selector UI. Traders commonly use Channels to link a chart and blotter to the same instrument while keeping other windows independent.

Interop Methods

Use Methods for point-to-point, request/response communication. A caller invokes a named method on a remote app and receives a result — ideal for querying data on demand, triggering actions, or building service-oriented architectures.

Interop Streams

Use Streams for real-time data feeds where a publisher pushes updates to multiple subscribers. Streams support branching — a single stream can serve different data subsets to different subscribers (e.g., different instrument prices per subscriber).

Intents

Use Intents for late-binding workflow orchestration where the caller specifies what action to perform (e.g., ViewChart) without needing to know which application will handle it. If multiple handlers are registered, the Intent Resolver UI lets the user choose.

Combining MechanismsThese mechanisms are complementary. A common pattern is to use Shared Contexts for primary state sync, Channels for user-driven linking, and Intents for navigation workflows — all in the same application.

Explore Each Mechanism