juspay / juspay/decision-engine

Sticky routing: merchant feature-flag config (sticky_routing_enabled)

Open
#414 0 comments 0 reactions 1 assignee Claimed by @prajjwalkumar17 View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.