Aias00 opened a new issue, #8013: URL: https://github.com/apache/shenyu/issues/8013
## Description Follow-up to the plugin orchestration review against master `34f2ed036` and design PR #8007 (`f2839049c`). Parent proposal: #7993. Owning implementation/design task: #7994. Related tasks: #7995, #7996, #8001. This issue refines the existing work breakdown; it does not assert that GRAPH execution is already implemented or that the proposed design has been accepted. HTTP/RPC API aggregation and parallel plugin execution remain out of scope. ## Problem The audit states that a Sentinel-style wrapper inside one exclusive branch leaves the shared suffix unguarded. With successor continuations, branch -> sentinel -> transform -> common suffix means sentinel wraps transform AND that suffix for requests taking the branch. Prefix/suffix-only labels therefore do not describe actual runtime scope; a suffix wrapper likewise cannot observe already-completed prefix work. Blanket placement rules may reject useful branch-specific resilience or misstate what is protected. ## Code and design evidence - [contract](https://github.com/apache/shenyu/blob/f2839049ca3873cde0b0c8fe6ff519c040dc905a/docs/plugin-graph-orchestration.md) §§7 and 9; [compatibility audit](https://github.com/apache/shenyu/blob/f2839049ca3873cde0b0c8fe6ff519c040dc905a/docs/plugin-graph-compatibility-audit.md) §4.2 and W1 - [Sentinel downstream transform/fallback/finally](https://github.com/apache/shenyu/blob/34f2ed036/shenyu-plugin/shenyu-plugin-fault-tolerance/shenyu-plugin-sentinel/src/main/java/org/apache/shenyu/plugin/sentinel/SentinelPlugin.java) - [Resilience4J downstream wrapping](https://github.com/apache/shenyu/blob/34f2ed036/shenyu-plugin/shenyu-plugin-fault-tolerance/shenyu-plugin-resilience4j/src/main/java/org/apache/shenyu/plugin/resilience4j/Resilience4JPlugin.java) - [tracing continuation scope](https://github.com/apache/shenyu/blob/34f2ed036/shenyu-plugin/shenyu-plugin-tracing/src/main/java/org/apache/shenyu/plugin/tracing/TracingPlugin.java) ## Task List - Correct the scope explanation with control-flow and subscription/unwind examples. - Define intended protected request sets and downstream regions independently from node category. - Decide whether branch-local wrappers are supported initially. If excluded, label this as an explicit scope limitation, not an inherent incompatibility. - Specify fallback, response decorators and cancellation within each wrapper's actual downstream lifetime. - Keep graph-control convergence distinct from publisher completion/unwinding. ## Acceptance criteria - A reviewed branch-local wrapper example correctly identifies its common-suffix coverage. - Tests verify which branch is protected, downstream failure visibility, fallback and cleanup. - Whole-pipeline protection requirements cannot be satisfied by a node placed after the work it must protect. - Compiler errors explain the violated scope requirement rather than rely solely on prefix/suffix labels. ## Dependencies and sequencing Resolve the contract portion in #7994 / PR #8007 before depending implementation hardens this assumption. Deliver code and integration coverage under #7994 and the related tasks above. Existing issue dependencies remain in effect; this issue adds a focused review requirement rather than a duplicate full implementation task. -- 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]
