Deduplicate and batch concurrent async requests. Many concurrent load(input)
calls are merged within a collection window into a single downstream batch, and
duplicate inputs share one result. No cache, trait-based API, built on tokio.
Pre-release. The crate is built and released feature by feature; nothing is published yet.
-
transit- the waiting primitive underneath everything else:Ride(an ordered set of waiters with exact membership) andLogue(a keyed router over rides). First release. -
Deduplicator- single-flight per input over a user-implementedFetcher; a flight lives while at least one caller is still waiting. -
Batcher- collection-window batching over a user-implementedBatchCollector, with an input-addressed result contract. -
Loader- deduplication in front of batching. - Metrics - instrumentation of windows, batches, and flights.
- Tracing - OpenTelemetry spans linked to individual
loadcalls.
An earlier prototype of the whole stack lives on the draft branch.
Installation and usage will be documented as features are released.
Licensed under either of Apache License, Version 2.0 or MIT license at your option.