Aias00 opened a new issue, #8010:
URL: https://github.com/apache/shenyu/issues/8010

   ## 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, #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 proposed contract's valid linear example ends after Divide; its HTTP 
choice branch goes from Divide directly to ResponsePlugin. Neither supplies a 
normal HTTP client's required URI and upstream response. The audit also groups 
Divide and HTTP clients as exclusive proxy/terminal plugins and treats cache as 
a competing response owner. Divide, URI construction, transport invocation, 
response decoration and commitment are cooperating roles, not interchangeable 
terminals. Cache and ResponsePlugin legitimately coexist on a cache miss.
   
   ## Code and design evidence
   
   - 
[contract](https://github.com/apache/shenyu/blob/f2839049ca3873cde0b0c8fe6ff519c040dc905a/docs/plugin-graph-orchestration.md)
 ยงยง9 and 16; [compatibility 
audit](https://github.com/apache/shenyu/blob/f2839049ca3873cde0b0c8fe6ff519c040dc905a/docs/plugin-graph-compatibility-audit.md)
 response/proxy classifications
   - [Divide produces domain and invocation 
policy](https://github.com/apache/shenyu/blob/34f2ed036/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-divide/src/main/java/org/apache/shenyu/plugin/divide/DividePlugin.java)
   - [URIPlugin produces 
HTTP_URI](https://github.com/apache/shenyu/blob/34f2ed036/shenyu-plugin/shenyu-plugin-uri/src/main/java/org/apache/shenyu/plugin/uri/URIPlugin.java)
   - [HTTP client consumes 
HTTP_URI](https://github.com/apache/shenyu/blob/34f2ed036/shenyu-plugin/shenyu-plugin-httpclient/src/main/java/org/apache/shenyu/plugin/httpclient/AbstractHttpClientPlugin.java)
   - [writer consumes upstream 
response](https://github.com/apache/shenyu/blob/34f2ed036/shenyu-plugin/shenyu-plugin-response/src/main/java/org/apache/shenyu/plugin/response/strategy/WebClientMessageWriter.java)
   - [cache hit short circuit and miss 
decoration](https://github.com/apache/shenyu/blob/34f2ed036/shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-handler/src/main/java/org/apache/shenyu/plugin/cache/CachePlugin.java)
   
   ## Task List
   
   - Correct both valid examples in PR #8007 to include a usable 
protocol-specific pipeline and an explicit supported response path.
   - Define producer/consumer capabilities for domain, URI, invocation result, 
response decorators and response commitment.
   - Validate ordering and required capabilities without banning the legal 
Divide + URI + HTTP client + response combination.
   - Distinguish structural successors from runtime short circuits: cache 
hit/mock/redirect can terminate while a cache miss continues to the normal 
writer.
   - Specify zero-call terminal responses separately from normal exactly-once 
upstream invocation.
   
   ## Acceptance criteria
   
   - A complete HTTP graph validates and forwards to a test upstream.
   - Missing URI producer/client/result dependencies fail with actionable node 
IDs.
   - Cache + response is accepted; cache hit performs zero upstream calls and 
cache miss performs one expected call/write.
   - Invalid duplicated invocation/commit configurations are rejected without 
rejecting legal cooperating plugins.
   
   ## 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