Skip to content

docs(design): daemon async runtime choice - tokio vs async-std vs threaded (#1367, #1590)#4247

Merged
oferchen merged 1 commit into
masterfrom
docs/daemon-async-runtime-eval-1367
May 17, 2026
Merged

docs(design): daemon async runtime choice - tokio vs async-std vs threaded (#1367, #1590)#4247
oferchen merged 1 commit into
masterfrom
docs/daemon-async-runtime-eval-1367

Conversation

@oferchen
Copy link
Copy Markdown
Owner

Summary

  • Adds docs/design/daemon-async-runtime-choice.md, a focused evaluation of async runtime options for the daemon accept loop.
  • Resolves the question left open by the implementation plan (Normalize quoted fallback keywords #1935) and the TPC benchmark plan (Optimize rolling checksum bulk rolls #1933): which runtime, and under what conditions do we flip the default.
  • Records the decision: tokio with the rt-multi-thread flavour, behind the existing async cargo feature, opt-in via use-async-listener = true in oc-rsyncd.conf. async-std is rejected on maintenance posture and the workspace-wide single-runtime rule (Decompose CLI filter rule handling #1780).

The doc deliberately does not restate the hybrid model from daemon-async-accept-sync-workers.md or the implementation steps from daemon-tokio-async-listener-impl.md. It covers: maintenance posture, feature parity for socket/process/fs, ecosystem alignment (russh, hyper), the case for staying threaded, the case for tokio, migration cost (small - most scaffolding already exists behind the feature gate), trigger conditions for flipping the default, and a five-step adoption plan complementary to #1935.

Test plan

  • CI fmt+clippy passes.
  • No code changes; docs-only.
  • Cross-references resolve to existing files in docs/design/ and docs/audits/.

Add a focused evaluation of async runtime options for the daemon
accept loop. Compares tokio against async-std and the existing
thread-per-connection model, and records the decision to adopt
tokio with the rt-multi-thread flavour under the existing async
feature gate.

The doc complements the implementation plan in #1935 and the
benchmark plan in #1933 rather than restating either. It covers
maintenance posture, feature parity, ecosystem alignment, the
case for staying threaded, the case for tokio, migration cost,
trigger conditions, and a five-step adoption sequence.
@oferchen oferchen merged commit 0c36efe into master May 17, 2026
8 checks passed
@oferchen oferchen deleted the docs/daemon-async-runtime-eval-1367 branch May 17, 2026 19:50
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label May 17, 2026
oferchen added a commit that referenced this pull request May 18, 2026
Add a focused evaluation of async runtime options for the daemon
accept loop. Compares tokio against async-std and the existing
thread-per-connection model, and records the decision to adopt
tokio with the rt-multi-thread flavour under the existing async
feature gate.

The doc complements the implementation plan in #1935 and the
benchmark plan in #1933 rather than restating either. It covers
maintenance posture, feature parity, ecosystem alignment, the
case for staying threaded, the case for tokio, migration cost,
trigger conditions, and a five-step adoption sequence.
oferchen added a commit that referenced this pull request May 18, 2026
Add a focused evaluation of async runtime options for the daemon
accept loop. Compares tokio against async-std and the existing
thread-per-connection model, and records the decision to adopt
tokio with the rt-multi-thread flavour under the existing async
feature gate.

The doc complements the implementation plan in #1935 and the
benchmark plan in #1933 rather than restating either. It covers
maintenance posture, feature parity, ecosystem alignment, the
case for staying threaded, the case for tokio, migration cost,
trigger conditions, and a five-step adoption sequence.
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