Smooth weighted round-robin

Shipped
alias round_robinalias weighted_round_robin

Drift-free weighted rotation that spreads load proportionally to weight.

Example

How Smooth weighted round-robin decides — the pool is evaluated and the winner is assigned. Each strategy selects differently.

type == "lead"winsTriggerNew LeadWebhookDistributeSmooth weighted round-robinStrategyae-westweight 3ae-eastweight 1centralweight 1MergeGatherAssigned
Show the code
// Smooth weighted round-robin selects from the pool and assigns.
engine.Route(ductor.Route{
Match: `routable.type == "lead"`,
Strategy: "smooth_weighted_round_robin",
Pool: "sales-team",
})
 
// Durable, observable, exactly-once.
decision, err := engine.Dispatch(ctx, routable)

Parameters1

atomicbooleandefault false

Use Redis-atomic SWRR state shared across pods.

Cached parameter metadata — connect the engine for live defaults.

How it works

Nginx-inspired smooth weighted round-robin. Distributes proportionally to recipient weight with low variance and no bursty clumping. Supports Redis-atomic shared cursor state for correct distribution across pods.

WeightedStateful