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]
