Aias00 opened a new issue, #7924: URL: https://github.com/apache/shenyu/issues/7924
## Goal Support multiple developers running instances of the same service without maintaining a complete duplicate set of selectors/rules for each developer. Example: a request carrying an operator-defined developer identity should prefer developer A's user-service instance when A overrides that service, while order-service continues through the configured shared/default pool. The behavior for an absent or unhealthy personal instance must be explicit and observable. ## Reuse and boundaries - The user scenario is described in #6238; that issue is a question rather than an implementation/acceptance tracker. - Master `87c22dde7` propagates discovered upstream labels (#7847); reuse this model and the existing load-balancing/discovery path. - PR #6317 already implements generic Divide gray routing. Coordinate/reuse that engine rather than creating a competing gray load balancer or duplicating its configuration fields. The new deliverable is a developer-profile workflow and a clearly defined per-service isolation/fallback policy on top of these capabilities. ## MVP scope - Define one profile convention: an operator-controlled request identity source, a discovery label key and the services a profile overrides. The request may select only configured profiles/registered upstreams, not an arbitrary upstream address. - Configure the policy once per service/namespace. Developers should not copy every selector and rule merely to add their own instance. - For overridden services, select healthy matching upstreams and retain the configured balancing policy within that subset. - Define fallback explicitly: shared/default pool versus strict no-match failure. Specify whether other developer-labelled instances are eligible; do not silently cross profiles. - Services not overridden by the profile retain ordinary configured routing. - Expose a diagnostic reason for profile match, shared fallback and strict miss. Keep diagnostics bounded and avoid unbounded per-developer metric labels. - Start with documented REST/configuration operations and a runnable example. Coordinate an optional Dashboard flow using the same contract. ## Acceptance criteria - [ ] A/B/shared user-service instances coexist; requests for A and B reach their intended instances. - [ ] An unrelated service follows the normal shared routing policy without a per-developer duplicate configuration. - [ ] Missing, unhealthy, removed and restarted personal instances follow the declared fallback/strict policy. - [ ] Same URI with different developer identities cannot reuse an incompatible path-only match or target result. - [ ] Namespace isolation and permitted identity sources/values are enforced. - [ ] Discovery label updates become effective without restarting the gateway; stale targets are not retained. - [ ] Retries/failover and circuit-breaker probes respect the selected profile/fallback policy rather than leaking into another profile. - [ ] Unlabelled legacy deployments keep existing behavior; the feature is opt-in and has a documented rollback path. Profile lifetime/automatic expiry and a full self-service UI can be follow-up work once the routing contract is agreed. This proposal does not replace the generic gray-release PR or the backend service registration protocol. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
