Skip to content

Design: two-party/multi-instance orchestration contract (roles, rendezvous, signaling seam) #62

Description

@lann

webrtc-datachannels built the whole two-party conformance layer in-repo: paired child drivers (RTC_CT_ROLE / RTC_CT_SIGNALING_URL / RTC_CT_RUN_ID env contract), prefix-based case selection (solo/ vs pair/), inventory-order lockstep so both sides run the corpus in the same order (rendezvous holds by construction), a suite-owned signaling mailbox with three implementations (native driver, in-guest wasi:http client, browser JS), and per-case rooms.

component-iroh is the named second consumer of exactly this shape (its just matrix pairing assertions are two-party by construction, and its AGENTS.md commits it to this harness once the endpoint surface stabilizes — polymorph-components/polymorph-iroh#3 / #10 are the gates).

This issue is the placeholder to design the shared contract when iroh migrates, not before: one consumer is not evidence of a general shape, two is the family's own threshold. Inputs to the eventual design: webrtc's env contract and rendezvous rules as the incumbent; the results-side fold (tracked separately) as the already-upstreamable half; whether role assignment belongs in the manifest (targets.toml) or the driver invocation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    designDecisions about the contract itself

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions