Skip to main content

Module rollout

Module rollout 

Source
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) over 0..100, giving this workflow a slice of the traffic on its channel.

Enums§

RolloutError
Why a rollout set is not a valid traffic split.