Skip to content

Wire v2: ordered revisions, stream reset and complete delta delivery #174

Closed

Description

@jsam

Problem

The subscription registry advances its sequence and adopts a refreshed view before delivery can reject an oversized delta. Concurrent notification publishers also allocate sequence numbers separately from buffering and sending. An error without invalidation can leave an idle subscriber permanently stale.

Evidence

Source: 5c1f313379a5cb2995a43a66ddba0b5cc9798b7f (inspected 2026-10-03). These are source findings; the acceptance scenarios below still need implementation and execution.

Acceptance criteria

  • W04: define stream epoch, subscription generation and committed-revision cursor; global notification and subscription-delta sequences remain separate domains.
  • Make initial snapshot/live handoff and concurrent publication ordered. Retained-ring loss, overflow or restart with overlapping numeric sequences requires an explicit reset and a fresh authoritative snapshot.
  • W05: send oversized snapshots/deltas as one bounded logical revision with begin/end, or invalidate/reset before continuing from undeliverable state. Receivers apply only complete revisions.
  • Bound queue bytes and isolate slow readers; partial send, duplicate/missing chunk and a disconnect cannot leave a client silently divergent, even if no later write arrives.
  • Test concurrent publication, commits during subscribe, restart, >MAX_MESSAGE_SIZE payloads and revocation during replay through real WS/SDK paths. Preserve the final credential fence and pass Performance: baseline and mandatory pre-PR regression pipeline #163.

Delivery

Plan item: G2 (W04–W05). R2 - Atomic programs + wire protocol.

Dependencies / related work: #171, #170, #137, #165, #172; SDK recovery adoption in inputlayer/inputlayer-clients#2.

Activity

  1. added
    bugSomething isn't working
    backendBackend/server related
    sdkPython, JavaScript and Rust clients and CLI
    P1Required next for reliable reactive delivery and operations
    on Oct 3, 2026
  2. jsam commented on Oct 4, 2026

    @jsam
    ContributorAuthor

    Engine side delivered by #215 and #222 (ordered revisions, subscription_reset, bounded complete delivery). SDK adoption tracked in inputlayer/inputlayer-clients#2.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Required next for reliable reactive delivery and operationsbackendBackend/server relatedbugSomething isn't workingsdkPython, JavaScript and Rust clients and CLI

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions