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]

Reply via email to