Roadmap
Foundation
- Candidate, status, weight, selection, and policy contracts.
- Round robin, random, weighted random, least loaded, P2C, and rendezvous.
- Deterministic tests, generated policy invariants, and rustdoc examples.
- Criterion benchmarks and recorded baselines for
poise-coreselection and membership-change cost. Dispatch, health, and discovery remain unmeasured. - Naming, licensing, security policy, MSRV policy, and governance before publication.
Dynamic systems
- Immutable versioned snapshots with keyed backend identity.
- Atomic snapshot publication and graceful draining.
- Smooth weighted round robin with identity-keyed state migration.
- Load trackers for in-flight requests and peak-EWMA latency.
- Rolling success-rate and overload penalties.
- Passive health and circuit breaking with bounded recovery probes.
- Executor-neutral active probe scheduling with threshold transitions.
- Group-relative success-rate outlier detection with safety caps.
Ecosystem integration
- Tower adapter with retained readiness, load tracking, and cancellation.
- Transactional static snapshot-to-Tower reconciliation.
- Runtime-neutral coalescing snapshot streams and Tower reconciliation.
- Optional Tokio active-health and discovery conveniences without making Tokio a core dependency.
-
tracingspans and metrics with bounded-cardinality defaults.
Advanced policies
- Weighted rendezvous with proportional capacity and minimal reweight churn.
- Bounded weighted virtual-node ring hash with transactional rebuilds.
- Prime-sized, transactionally rebuilt Maglev lookup tables.
- Weighted rendezvous affinity with prospective concurrent-load bounds.
- Weighted priority tiers, overprovisioned failover, and panic thresholds.
- Health-adjusted locality weighting and cross-locality spillover.
- Retry and hedge selection that excludes already-attempted backends.
- Adaptive concurrency and capacity-aware routing.
Verification bar
Every stable policy should have:
- unit, property, and deterministic replay tests;
- distribution and disruption tests where applicable;
- criterion benchmarks across small and large backend sets;
- documented time, memory, and allocation complexity;
- behavior documented for empty sets, ineligible sets, ties, overflow, membership churn, and seeded randomness;
- comparison against a reference implementation, where the shipped code is optimised away from its specification. Cached and scratch-retaining policies are compared against a policy with no history; for a policy whose implementation is its specification, a reference would be a copy and is not required.