Data Flow Model

Understanding how data flows between applications is key to building effective io.Connect solutions. All communication is routed through the platform's managed messaging hub, ensuring governance, cross-technology reach, and real-time performance.

Browser Environment Flow

┌────────────────────────────────────┐
│         Browser Window             │
│                                    │
│  ┌──────────┐   ┌──────────────┐  │
│  │ Platform │   │ Platform Hub  │  │
│  │   App    │──▶│ Message Bus   │  │
│  └──────────┘   └──────┬───────┘  │
│                         │          │
│         ┌───────────────┼────┐     │
│         ▼               ▼    ▼     │
│   ┌──────────┐   ┌─────────────┐  │
│   │ Client A │   │  Client B   │  │
│   │ (iframe) │   │  (iframe)   │  │
│   └──────────┘   └─────────────┘  │
└────────────────────────────────────┘

Communication Patterns

1. Shared Context Update

App A                    Platform Hub              App B
  │                          │                       │
  │── contexts.update() ────▶│                       │
  │                          │── callback(data) ────▶│
  │                          │                       │
  │   (data persists in hub even if App A disconnects)

2. Channel Broadcast

App A (Red Channel)      Platform Hub        App B (Red Channel)
  │                          │                       │
  │── channels.publish() ──▶│                       │
  │                          │── subscribe cb() ───▶│
  │                          │                       │
  │                    App C (Blue Channel)          │
  │                   (does NOT receive data)        │

3. Interop Method Invocation

App A (Caller)           Platform Hub         App B (Server)
  │                          │                       │
  │── interop.invoke() ────▶│                       │
  │                          │── handler(args) ────▶│
  │                          │◀── return value ──── │
  │◀── result ──────────────│                       │

4. Intent Resolution

App A (Raiser)           Platform Hub        App B & C (Handlers)
  │                          │                       │
  │── intents.raise() ─────▶│                       │
  │                          │── find handlers ────▶│ (multiple)
  │                          │                       │
  │                    Intent Resolver UI            │
  │                    (user picks App B)            │
  │                          │── context ──────────▶│ App B
  │                          │                       │

Key Principles

  • All communication routes through the hub — the platform manages all inter-app messaging
  • Contexts persist — shared context data survives publisher disconnection
  • Channels are user-driven — the user controls which apps are linked
  • Interop is targeted — you can invoke specific servers or broadcast to all
  • Intents are decoupled — the raiser doesn't need to know the handler