v0.3.0
Backward-compatible with v0.2.0.
New — built-in bottleneck detection
Observe(&Report)— an option (works withRunandRunPartitioned) that fills aReportafter the run: counts, per-stage timings, throughput and a diagnosed bottleneck.- flow triangulates by where the workers spend their time — idle (producer slow), busy (the work), blocked (consumer slow) — so
Report.BottleneckisStageProducer/StageProcessor/StageConsumer, with matching advice.Report.String()renders a readable report. - Opt-in and cheap: instrumentation runs through a nil-able probe, so with
Observeoff the hot path makes notime.Nowcalls. Zero dependencies.
Notes
The observability API (Observe, Report) is experimental and may change while v0.x. Metrics exporters that carry dependencies (Prometheus, OpenTelemetry) will land later as separate submodules to keep the core zero-dependency.