Skip to content

docs(design): async-compatible channel abstraction for transfer pipeline#3647

Merged
oferchen merged 1 commit into
masterfrom
docs/async-channel-abstraction-design-1591
May 5, 2026
Merged

docs(design): async-compatible channel abstraction for transfer pipeline#3647
oferchen merged 1 commit into
masterfrom
docs/async-channel-abstraction-design-1591

Conversation

@oferchen
Copy link
Copy Markdown
Owner

@oferchen oferchen commented May 5, 2026

Summary

Design note for #1591 covering an async-compatible channel abstraction for the transfer pipeline. Proposes a thin TransferChannel trait (sync + async send/recv on the same channel) and a default implementation choice (flume for sync-async bridges, crossbeam stays in pure-sync hot paths).

Key sections

Wire-compat invariants

Zero impact. Channels are internal coordination only - no protocol bytes, no capability negotiation, no multiplex frame changes.

Test plan

  • Doc-only change. Verify markdown renders cleanly on GitHub.
  • Confirm citations match: bounded.rs:8,89-104, listener.rs:25,216-249, async_dispatch.rs:10, consumer.rs:47, Cargo.toml:188,199-200.

@github-actions github-actions Bot added the documentation Improvements or additions to documentation label May 5, 2026
Design note for #1591. Proposes a TransferChannel trait that exposes
both sync and async send/recv surfaces, with flume as the recommended
backing for sync-async bridge sites and crossbeam retained for the
pure-sync hot paths. Documents the five migration sites, backpressure
and fairness semantics, cancellation footguns, and follow-up work.

Wire-compat impact: zero. Channels are internal coordination only.
@oferchen oferchen force-pushed the docs/async-channel-abstraction-design-1591 branch from af8eb65 to ebe7878 Compare May 5, 2026 09:40
@oferchen oferchen merged commit 07b1783 into master May 5, 2026
7 checks passed
@oferchen oferchen deleted the docs/async-channel-abstraction-design-1591 branch May 5, 2026 09:41
oferchen added a commit that referenced this pull request May 18, 2026
…ine (#3647)

Design note for #1591. Proposes a TransferChannel trait that exposes
both sync and async send/recv surfaces, with flume as the recommended
backing for sync-async bridge sites and crossbeam retained for the
pure-sync hot paths. Documents the five migration sites, backpressure
and fairness semantics, cancellation footguns, and follow-up work.

Wire-compat impact: zero. Channels are internal coordination only.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant