Expand description
Percentage-based traffic splitting: the Rollout range, and the
invariants that make a set of them safe.
A rollout gives one workflow a slice of the traffic on its channel. The
engine matches a single range against Message::routing_bucket; what
makes a deployment correct is a property of the whole set — the versions of
one logical workflow must partition 0..100 with no overlap and no gap.
Rollout::partition builds such a set from percentages, and
Rollout::validate_set checks one.
Bucket derivation — how a caller maps a request to 0..=99, whether by
sticky hash, per-message draw or round-robin — is deliberately the caller’s
policy and stays outside this crate.
Structs§
- Rollout
- Half-open bucket range
[bucket_start, bucket_end)over0..100, giving this workflow a slice of the traffic on its channel.
Enums§
- Rollout
Error - Why a rollout set is not a valid traffic split.