Spring Cloud: select distributed capabilities
Prerequisites: 01-ecosystem
Which distributed responsibility needs a component?
Goal & mental model verified
Cloud projects supply distributed patterns: Config, Gateway, discovery, LoadBalancer, Circuit Breaker, Stream, Function and Task. Release trains coordinate compatible dependencies with a BOM.
[S43] [S44]Worked example · design exercise synthesis
A gateway routes broker requests; a service calls an insurer using an HTTP client. On Kubernetes, evaluate whether platform discovery/configuration already supplies the needed capability before adding another layer.
[S43] [S44] [S45]Engineering decision synthesis
Use RestClient for blocking calls, WebClient for reactive composition, or HTTP Service Clients for declarative interfaces. OpenFeign remains feature-complete; maintainers recommend HTTP Service Clients for new evolution.
[S43] [S44] [S45]Pitfall & diagnosis synthesis
Cloud abstractions do not remove network failures or distributed consistency problems. The old docs/current Cloud URL can expose an old train; match documentation to the actual version.
[S43] [S44] [S45]Improve & validate synthesis
Map each component to one operational need. Verify Boot/Cloud compatibility and timeout behavior, then remove duplicate discovery, routing or configuration responsibilities.
[S43] [S44] [S45]Check yourself: Should every Kubernetes service add Eureka?
No. First determine whether native discovery already meets the requirement.