Skip to content

docs(design): spawn_blocking bridge for rayon work in async daemon (#1751)#4196

Merged
oferchen merged 1 commit into
masterfrom
docs/spawn-blocking-async-daemon-1751
May 17, 2026
Merged

docs(design): spawn_blocking bridge for rayon work in async daemon (#1751)#4196
oferchen merged 1 commit into
masterfrom
docs/spawn-blocking-async-daemon-1751

Conversation

@oferchen
Copy link
Copy Markdown
Owner

Summary

  • Adds docs/design/spawn-blocking-bridge.md covering the canonical sync/async bridge between rayon-dispatched CPU work and the tokio runtime that will host the async daemon listener landing in Normalize quoted fallback keywords #1935.
  • Inventories 30 rayon call sites reachable from the daemon code paths (transfer, engine, checksums, flist, signature, fast_io) with file:line anchors.
  • Fixes the rayon_bridge helper signature, sizing recipe for the rayon pool and tokio blocking pool, anti-patterns to forbid at review, migration order keyed to phase 2 of async-migration-plan.md, and a test strategy that does not require the async daemon to exist yet.

Pure docs change. No code. The async daemon does not exist yet so the bridge cannot be implemented in this PR. Tracking: #1751, companion to #1935 (impl), #1367 (eval), #1594 (plan).

Test plan

  • No code touched, no compilation needed.
  • No em-dashes, no forbidden references.
  • Cross-references resolve to docs that exist on master.

…1751)

Document the canonical sync/async bridge between rayon-dispatched CPU
work and the tokio runtime that will host the async daemon listener
landing in #1935. Inventories 30 rayon call sites reachable from the
daemon code paths, fixes the bridge signature, sizing recipe for both
pools, anti-patterns to forbid in review, migration order keyed to
phase 2 of the async migration plan, and a test strategy that does
not require the async daemon to exist yet.
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label May 16, 2026
@oferchen oferchen merged commit 2563368 into master May 17, 2026
8 checks passed
@oferchen oferchen deleted the docs/spawn-blocking-async-daemon-1751 branch May 17, 2026 03:24
oferchen added a commit that referenced this pull request May 17, 2026
…2136) (#4210)

Reframe the actor-pattern evaluation around supervised tokio tasks
(Erlang/Akka style with bounded mailboxes and a supervisor that
restarts crashed actors) to match the post-async-migration target
the migration plan commits us to.

The recommendation stays: reject the actor reshape for the
production hot path because rsync's wire protocol is sequential
with no resume primitive, so supervisor restart is a no-op; adopt
the actor surface only for multi-host fan-out and fault-injection
tests, behind --features async-pipeline.

Cross-references #4186 (async migration plan), #4196 (spawn_blocking
bridge), #2134 (type-state for protocol phases, recently merged),
and #1935 (async daemon listener).
oferchen added a commit that referenced this pull request May 18, 2026
…1751) (#4196)

Document the canonical sync/async bridge between rayon-dispatched CPU
work and the tokio runtime that will host the async daemon listener
landing in #1935. Inventories 30 rayon call sites reachable from the
daemon code paths, fixes the bridge signature, sizing recipe for both
pools, anti-patterns to forbid in review, migration order keyed to
phase 2 of the async migration plan, and a test strategy that does
not require the async daemon to exist yet.
oferchen added a commit that referenced this pull request May 18, 2026
…2136) (#4210)

Reframe the actor-pattern evaluation around supervised tokio tasks
(Erlang/Akka style with bounded mailboxes and a supervisor that
restarts crashed actors) to match the post-async-migration target
the migration plan commits us to.

The recommendation stays: reject the actor reshape for the
production hot path because rsync's wire protocol is sequential
with no resume primitive, so supervisor restart is a no-op; adopt
the actor surface only for multi-host fan-out and fault-injection
tests, behind --features async-pipeline.

Cross-references #4186 (async migration plan), #4196 (spawn_blocking
bridge), #2134 (type-state for protocol phases, recently merged),
and #1935 (async daemon listener).
oferchen added a commit that referenced this pull request May 18, 2026
…1751) (#4196)

Document the canonical sync/async bridge between rayon-dispatched CPU
work and the tokio runtime that will host the async daemon listener
landing in #1935. Inventories 30 rayon call sites reachable from the
daemon code paths, fixes the bridge signature, sizing recipe for both
pools, anti-patterns to forbid in review, migration order keyed to
phase 2 of the async migration plan, and a test strategy that does
not require the async daemon to exist yet.
oferchen added a commit that referenced this pull request May 18, 2026
…2136) (#4210)

Reframe the actor-pattern evaluation around supervised tokio tasks
(Erlang/Akka style with bounded mailboxes and a supervisor that
restarts crashed actors) to match the post-async-migration target
the migration plan commits us to.

The recommendation stays: reject the actor reshape for the
production hot path because rsync's wire protocol is sequential
with no resume primitive, so supervisor restart is a no-op; adopt
the actor surface only for multi-host fan-out and fault-injection
tests, behind --features async-pipeline.

Cross-references #4186 (async migration plan), #4196 (spawn_blocking
bridge), #2134 (type-state for protocol phases, recently merged),
and #1935 (async daemon listener).
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