Protocol Capability Matrix
1. Назначение документа
Этот документ фиксирует capability matrix по всем protocol families и execution modes.
Он нужен как source of truth для:
- UI availability rules;
- admin-api validation;
- runtime dispatch;
- roadmap planning.
2. Matrix by protocol and execution mode
| Protocol |
Unary |
Window |
Session |
Async Job |
Notes |
| REST |
Yes |
Yes |
Yes |
Yes |
window/session используют SSE или bounded polling |
| GraphQL |
Yes |
No |
No |
Limited |
async job только как явная status/result workflow model |
| gRPC |
Yes |
Yes |
Yes |
Yes |
только unary и server-streaming |
| WebSocket |
No |
Yes |
Yes |
Yes |
upstream-only adapter |
| SOAP |
Yes |
Limited |
No |
Yes |
request-response first, async через separate workflow contract |
3. Matrix by protocol and transport behavior
| Protocol |
Request/Response |
Server Stream |
Stateful Session |
| REST |
Yes |
Yes |
Limited |
| GraphQL |
Yes |
No |
No |
| gRPC |
Yes |
Yes |
Yes |
| WebSocket |
No |
Yes |
Yes |
| SOAP |
Yes |
Limited |
No |
4. Matrix by protocol and artifact requirements
| Protocol |
Sample JSON |
Descriptor |
WSDL/XSD |
Query Template |
Subscribe Template |
| REST |
Optional |
No |
No |
No |
Optional |
| GraphQL |
Optional |
No |
No |
Yes |
No |
| gRPC |
Optional |
Yes |
No |
No |
No |
| WebSocket |
Optional |
No |
No |
No |
Yes |
| SOAP |
Optional |
No |
Yes |
No |
No |
5. Matrix by protocol and auth support
| Protocol |
None |
Bearer |
Basic |
API Key Header |
API Key Query |
WS-Security |
| REST |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
| GraphQL |
Yes |
Yes |
Yes |
Yes |
Limited |
No |
| gRPC |
Yes |
Yes |
Yes |
Limited |
No |
No |
| WebSocket |
Yes |
Yes |
Yes |
Yes |
Limited |
No |
| SOAP |
Yes |
Yes |
Yes |
Limited |
Limited |
Future |
6. Matrix by protocol and UI blocks
| UI Block |
REST |
GraphQL |
gRPC |
WebSocket |
SOAP |
| Endpoint URL |
Yes |
Yes |
No |
Yes |
Optional |
| Method selector |
Yes |
No |
No |
No |
No |
| Query template |
No |
Yes |
No |
No |
No |
| Descriptor upload |
No |
No |
Yes |
No |
No |
| WSDL upload |
No |
No |
No |
No |
Yes |
| Subscribe template |
Optional |
No |
No |
Yes |
No |
| Subprotocol list |
No |
No |
No |
Yes |
No |
| SOAP headers |
No |
No |
No |
No |
Yes |
| Stream kind selector |
Optional |
No |
Yes |
Yes |
Limited |
7. Validation rules matrix
7.1. Unsupported combinations
GraphQL + Window
GraphQL + Session
WebSocket + Unary
SOAP + Session
gRPC + Session для non-server-streaming method
REST + Server Stream без stream-capable target model
7.2. Conditionally supported combinations
-
GraphQL + Async Job
Требует отдельного status/result workflow contract.
-
SOAP + Window
Допускается только для polling-style workflow, а не для native stream.
-
SOAP + Async Job
Требует отдельной operation family для status/result.
8. Product-wave grouping
Wave 1
- REST
- GraphQL query/mutation
- gRPC unary
- Streamable HTTP downstream
- Window/session/job core model
Wave 2
- REST SSE
- gRPC server-streaming
- session/job tool families
- streaming UI
Wave 3
- WebSocket upstream adapter
- richer streaming observability
Wave 4
- SOAP foundation
- WSDL/XSD tooling
- SOAP UI flow
Wave 5
- GraphQL subscriptions
- gRPC client-streaming
- gRPC bidi
- advanced enterprise security stacks