juspay / juspay/decision-engine
Sticky routing: merchant feature-flag config (sticky_routing_enabled)
- Dominant language
- Rust
- Stars
- 128
- Forks
- 36
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 34
Description
Part of #393 (sticky routing). **Status: implemented** in #422 (`KnownFeature::StickyRouting`), pending review/merge.
> [!NOTE]
> Re-scoped: the original per-algorithm `routing_algorithm.metadata.sticky_routing` design was dropped — sticky routing is independent of the euclid rule store. Its configuration is the **merchant-level feature flag** alone.
- `sticky_routing_enabled` FeatureConf (service-configuration row with rollout-% support) gates both the feedback-write and decide-read paths.
- Exposed as `KnownFeature::StickyRouting` (slug `sticky-routing`) on the standard `/merchant-account/{id}/features` API, so it gets the same dashboard treatment as multi-objective / volume contracts.
- The dashboard switch lives in the Multi Objective tab's Feature Flags list — tracked in #421 / PR #424.
- An optional per-request `stickyRouting` override on decide-gateway (mirroring `enableMultiObjective`) lets a caller opt a single payment out.
Contributor guide
Assessment
This issue has not been assessed yet.