Skip to content

feat(broadcast): add lossless MPMC channels #213

Description

@tisonkun

Parent: #206

Goal

Add bounded and unbounded MPMC broadcast channels in which every active subscription observes every accepted publication in one committed order.

Contracts

  • Bounded broadcast applies backpressure at a strict logical capacity and is gated by the slowest active subscription.
  • Unbounded broadcast grows subject to memory and reclaims values after every active subscription advances or drops.
  • New subscriptions start at the committed tail.
  • Sliding, drop-oldest, and lag semantics remain out of scope.

Acceptance criteria

  • Cover fanout, concurrent producers, contiguous publication order, slow subscriptions, reclamation, cancellation, disconnection, and panic-safe payload cloning.
  • Benchmark 1 and 8 producers across representative fanout counts against lossless broadcast peers.
  • Keep ring, cursor, retention, and sequencing types private.

Depends on #208. Prior work and discussion: #117, #146, and #167.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions