Data Channels

Private, permissioned pipes that combine multiple live sources into a single subscription.

A Data Channel sits between a set of live sources and one consumer. The consumer subscribes to the channel; the channel decides what reaches them.

Why channels

  • One subscription instead of many bi-links to manage.
  • Sources stay private — the consumer never gets a direct address to them.
  • Morphing and filtering are applied in one place.

Composition

You define a channel by listing its member now-URIs and, optionally, a morph for each. Members can belong to different organizations. Adding or removing a member takes effect immediately for every consumer of the channel.

Permissions

A channel has its own identity. It can read a source only if that source’s owner has granted the channel access — not the consumer. This lets an organization expose a curated view of internal data to a partner without sharing the underlying systems.

Lifecycle

  • Open — consumer subscribes; the channel establishes bi-links to each live member.
  • Active — changes from any member are morphed and pushed as a single stream.
  • Closed — consumer disconnects; the channel tears down its upstream links.

Example

A neighborhood energy app follows a household’s own devices plus a shared price feed, but must never see a neighbor’s meter:

channel: home-42
  members:
    now://home-42.morph.space/devices/*      (full)
    now://grid.example/prices/zone-c         (read)
  excluded:
    now://home-43.morph.space/devices/meter