# ECP-0013: stream catalog gossip for discovery Status: Draft ## Problem We need a decentralized way to discover live streams and their MoQ endpoints without a central registry. ## Constraints - Must work over iroh transports (QUIC, relays). - Should be encrypted at the transport layer and signed by endpoint identities. - Lightweight enough to broadcast frequently. ## Decision - Introduce a `StreamCatalogEntry` structure that pairs a `StreamDescriptor` with MoQ transport metadata and optional encryption parameters. - Publish catalog entries over `iroh-gossip` on a well-known topic derived from `every.channel/catalog/v1`. - `ec-node` can optionally announce entries when publishing a stream. ## Alternatives considered - Centralized HTTP registry: rejected due to resilience and governance risks. - Static peer lists only: rejected due to poor discoverability. ## Rollout / teardown - Add catalog types to `ec-core` and gossip helpers to `ec-iroh`. - Add CLI flags to `ec-node` to announce catalog entries. - Defer full catalog sync/merge semantics until initial interoperability is validated.