Aias00 opened a new issue, #8018: URL: https://github.com/apache/shenyu/issues/8018
## Description Follow-up to the plugin orchestration review against master `34f2ed036` and design PR #8007 (`f2839049c`). Parent proposal: #7993. Owning implementation/design task: #7995. Related tasks: #7994, #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 PR #8007 motivates structural restrictions by describing arbitrary-DAG path analysis as necessarily exponential. Enumerating all root-to-END paths can be exponential, but several required checks do not need enumeration: cycles/reachability use standard graph traversal; possible prior plugin sets can propagate in topological order for duplicate-on-path checks; guaranteed capabilities use predecessor intersection plus node effects. Wrapper and protocol semantics still need their own well-defined analysis. ## Code and design evidence - [contract](https://github.com/apache/shenyu/blob/f2839049ca3873cde0b0c8fe6ff519c040dc905a/docs/plugin-graph-orchestration.md) §§7 and 18; [compatibility audit](https://github.com/apache/shenyu/blob/f2839049ca3873cde0b0c8fe6ff519c040dc905a/docs/plugin-graph-compatibility-audit.md) §6 ## Task List - Correct the complexity rationale without automatically expanding Phase-1 scope to arbitrary DAGs. - Specify bounded algorithms for reachability, cycle detection, duplicate plugin detection and capability requirements. - Distinguish may-have-run union from must-have-run intersection; account for skipped plugins and short circuits conservatively. - State assumptions for structured CHOICE/convergence and handle wrapper scope separately. - Bound node/edge/condition counts, compilation memory and recursion; do not enumerate path combinations. ## Acceptance criteria - Documentation no longer claims all DAG validation requires exponential path enumeration. - A layered diamond graph with exponentially many logical paths validates within graph-size-based limits. - Tests distinguish a plugin repeated on one reachable path from the same plugin on mutually exclusive branches. - Capability checks reject prerequisites absent on one incoming path, and compiler limits fail with useful diagnostics. - Phase-1 structural limits remain explicit product/semantic choices. ## Dependencies and sequencing Resolve the contract portion in #7994 / PR #8007 before depending implementation hardens this assumption. Deliver code and integration coverage under #7995 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]
