Files
clean-architecture-backend-…/docs/compatibility/grpc-advanced-support-matrix.md
T

3.2 KiB

gRPC advanced capability support matrix

Every capability in :grpc-advanced:*, its grade, and what it would take to raise it. GrpcAdvancedSupportMatrix is the machine-readable form; GrpcAdvancedCapability.defaultGrade carries the same values.

All capabilities are off by default. Flags are ca-skeleton.grpc.advanced.<capability>.enabled.

Grades

Grade May start Production needs a separate approval
ADVANCED_STABLE Yes No
EXPERIMENTAL Yes Yes
WATCH No
DISABLED No

Capabilities

Capability Flag Grade Real infrastructure its evidence needs
Protobuf Edition 2024 edition-2024 ADVANCED_STABLE
Protobuf Edition 2026 edition-2026 WATCH
Client streaming client-streaming ADVANCED_STABLE
Bidirectional streaming bidi-streaming ADVANCED_STABLE
Manual flow control manual-flow-control ADVANCED_STABLE
Read-only unary hedging hedging EXPERIMENTAL
Custom name resolver custom-resolver ADVANCED_STABLE
Custom load balancer custom-load-balancer EXPERIMENTAL
Proxyless xDS xds EXPERIMENTAL xDS control plane
gRPC-Web grpc-web ADVANCED_STABLE gRPC-Web proxy
Servlet HTTP/2 servlet-compat ADVANCED_STABLE Servlet container
Spring Integration bridge integration-bridge ADVANCED_STABLE
Reactor adapter reactor ADVANCED_STABLE
Kotlin coroutine / Flow kotlin ADVANCED_STABLE Kotlin toolchain
Channelz / CSDS diagnostics channel-diagnostics ADVANCED_STABLE

What the grades mean here, concretely

Grade is a statement about the contract, not about a deployment. Every capability's contract is implemented and tested in this repository. What no capability has is evidence from a real deployment: GrpcAdvancedPromotionEvidence for each one is empty, and no promotion has been granted.

Four capabilities cannot produce meaningful evidence here at all, because the infrastructure they need is absent. GrpcAdvancedInfrastructureTestkit.missingInfrastructure names them, and a suite that runs without its infrastructure passes and establishes nothing.

Kotlin is the sharpest case. This repository has no Kotlin toolchain, so GrpcKotlinCompatibilityGate.supportableHere() returns false and always will until one exists. The four contract requirements — one schema source shared with Java, coroutine cancellation propagated, Flow backpressure inside the Stable buffer bounds, platform evidence types preserved — are checkable without a toolchain and are checked. The compile lane is not.

Promotion thresholds

To Soak Also required
ADVANCED_STABLE 7 days compatibility evidence, security review, fault evidence, performance evidence, ADR, runbook, real-environment test
Stable default 30 days all of the above, plus a dependency, security and operational-cost review

WATCH becomes EXPERIMENTAL before anything else. Promotions are independent: promoting one capability changes no other's grade.