akiomik / akiomik/tears

Document the cost of routing high-frequency messages through deep reducer stacks

未关闭
#361 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
documentation
主要语言
Rust
星标
9
派生
1
平均合并
11 小时 46 分钟
30 天内合并 PR
62

描述

## Summary

Document what routing a high-frequency message through a deep reducer stack
costs, so an application choosing between a flat `Application` and a composed
stack can weigh the cost against the separation it buys.

This is the one remaining acceptance criterion of #322; the runnable example
(`examples/dashboard_composed.rs`) and the decision guide (`docs/composition.md`)
landed in #360.

## Scope

- The per-boundary cost of a claimed message: what each boundary does to a
command on the way out (`Command::map`'s boxing, one `Command::scoped` call,
one `Subscription::scoped` call per declaration) and what it does to a message
on the way in.
- What that costs at a terminal-input or timer cadence, and at what stack depth
it stops being noise.
- Source-side coalescing as the answer when the cadence is the problem rather
than the depth.
- `Command::without_redraw()` and where it belongs in an update that runs often.

## Constraints

Every number in the guidance must come from a run of a bench in this repo, not
from reasoning about the code, and the guidance must say which bench produced
it so it can be re-measured. Where a cost cannot be measured with what exists,
say what is not known rather than estimating it — or add the bench.

Nothing here reopens RFC 0014: this is guidance about a cost, not a change to
what a boundary does.

## Acceptance criteria

- [ ] `docs/composition.md` gains a section on the cost of routing
high-frequency messages through deep reducer stacks.
- [ ] It covers `Command::map` boxing, source-side coalescing, and
`without_redraw()`.
- [ ] Every quantitative claim names the bench that produced it.

贡献指南

打开贡献指南

调研方向

Start with docs/composition.md and examples/dashboard_composed.rs, then locate and run the repository bench relevant to composed reducer routing. Read the named Command and Subscription APIs to identify the measured paths, adding a bench only if the existing ones cannot measure the requested costs. Done means the new section covers per-boundary and cadence guidance, coalescing, and without_redraw(), with every number tied to a named bench or explicitly marked unknown.

由索引模型根据 Issue 内容生成。

评估

技术栈
rust
领域
documentation, performance
Issue 类型
文档
难度
4/5
预计耗时
3-5 天
活跃度
活跃
描述清晰度
描述清楚
新手友好度
65/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。