# Channels and FDC3

**URL:** <https://community.interop.io/t/channels-and-fdc3/736>\
**Category:** General\
**Tags:** FDC3\
**Created:** [October 19, 2026, 12:45pm UTC](https://community.interop.io/t/channels-and-fdc3/736 "2026-10-19T12:45:44Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![HAN](https://yyz2.discourse-cdn.com/flex028/user_avatar/community.interop.io/han/32/45_2.png) [@HAN](https://community.interop.io/u/HAN)\
**Post date:** [October 19, 2026, 12:45pm UTC](https://community.interop.io/t/channels-and-fdc3/736/1 "2026-10-19T12:45:44Z")

</div>

I’m just getting started with fdc3 and trying to understand Channels there and the difference to Channels in interop.io. From what I read so far seems only User Channels are relevant to Channels in interop.io, but what about App channels and Private Channels. Also are fdc3 channels in general more like shared context in io.Connect? Is this an accurate mapping or are there distinct differences?

Can I use io.connect channels as fdc3channels. I’m quite confused.

---

<div class="post-metadata">

**Author:** ![Kalina\_G](https://yyz2.discourse-cdn.com/flex028/user_avatar/community.interop.io/kalina_g/32/60_2.png) [@Kalina\_G](https://community.interop.io/u/Kalina_G)\
**Post date:** [October 19, 2026, 3:18pm UTC](https://community.interop.io/t/channels-and-fdc3/736/2 "2026-10-19T15:18:50Z")

</div>

**FDC3** defines three types of channels: **User Channels, App Channels, and Private Channels**. io.Connect supports all three, but they serve different purposes.

### 1. User Channels

User Channels let users group applications so they share context, usually by selecting the same color in each application.

**In io.Connect, FDC3 User Channels are implemented using io.Connect Channels.** An io.Connect Channel must include the appropriate FDC3 mapping in its definition to be exposed as an FDC3 User Channel. You can use the FDC3 and native io.Connect Channels APIs together. The native methods accept additional options for publishing, retrieving, and subscribing to FDC3 context, providing built-in handling of its data format. An ordinary native publish doesn’t automatically become an FDC3 broadcast simply because the channel is mapped.

### 2. App Channels

App Channels provide developer-controlled communication between applications. Applications access a channel using an agreed name and explicitly publish or listen on it.

They operate independently of the user’s selected color channel. Multiple applications can communicate through the same App Channel, and an application can use several App Channels simultaneously. They aren’t inherently private.

FDC3 includes App Channels to provide a standard way to coordinate application workflows without relying on user-controlled grouping.

### 3. Private Channels

Private Channels support an ongoing conversation between two application instances. An application handling an FDC3 intent creates a Private Channel and returns it to the requesting application. Both can then exchange context over it.

Private Channels cannot be retrieved through the normal channel lookup API. They also provide subscription and disconnection notifications, allowing the applications to coordinate when to send updates and when to stop.

FDC3 includes them so an intent can establish a continuing exchange rather than return only a single response.

### Examples of using each type

- **User Channel:** A user joins a watchlist, chart, and news application to the Red channel. Selecting an instrument in the watchlist broadcasts its context, and the chart and news application update accordingly.
- **App Channel:** An order-management application and several supporting applications use an agreed, named channel to exchange order updates. This workflow continues independently of their selected color channels.
- **Private Channel:** An application raises an intent to request pricing. The pricing application returns a Private Channel and streams quote updates to that requesting instance. When the requester disconnects, the pricing application can stop sending updates.

### Relationship to io.Connect APIs

**io.Connect Channels** and **FDC3 User Channels** serve essentially the same purpose. The main difference when exchanging data through both APIs is the **data format** : FDC3 uses typed **Context** objects, while native io.Connect Channels work with application-defined data objects by default. The additional FDC3 options in the native Channels API handle this format difference, allowing native io.Connect applications and FDC3 applications to exchange context on the same mapped channel.

Comparing FDC3 App Channels with **io.Connect Shared Contexts** is useful, but they aren’t interchangeable. Shared Contexts maintain a shared data object, while FDC3 channels exchange typed Context objects with standardized behavior.

The choice of which FDC3 Channel type to use depends on who controls the communication: **User Channels** let users link applications, **App Channels** let developers coordinate workflows, and **Private Channels** connect two application instances for an ongoing exchange.
