Spring cloud
Technical research – SYD
prdc
Service Registry
Service
Discovery
(Consul)
Register Register
Register
Order Order Payment
(spring (spring (spring
boot) boot) boot)
Service Registry
Service
Discovery
(Consul)
Get Order Service
Information Register
Register
Order Customer Payment
(spring (spring (spring
boot) boot) boot)
Service Registry (Technology Stack)
• Consul as Service Registry Server
• Spring cloud consul ( Consul discovery)
• Spring Cloud Feign ( declarative web service client)
• Spring boot actuator
• Spring boot ribbon ( client side load balancer)
• Spring boot webflux
Externalized Configuration
Service
Discovery
(Consul)
Get configuration
Ask for configuration
Ask for configuration
Order Customer Payment
(spring (spring (spring
boot) boot) boot)
Service Registry (Technology Stack)
• Consul as Service Registry Server
• Spring cloud consul ( Consul discovery)
• Spring cloud consul config (configuration client)
• Spring cloud consul bus ( notify if there is new config)
Dynamic Routing
1.Hit create 2.Retrieve
order API order Service
Dynamic
information Service
Router
Mobile app Discovery
and filter
(Consul)
(Zuul)
3.Hit order Register
service Register
Order Customer Payment
(spring (spring (spring
boot) boot) boot)
Dynamic Routing (Technology Stack)
• Consul as Service Registry Server
• Spring cloud zuul
• Spring cloud consul ( Consul discovery)
• Spring boot actuator
• Spring boot ribbon ( client side load balancer)
• Spring boot webflux
Distributed Tracing
Order Customer Payment
(spring (spring (spring
boot) boot) boot)
Apache Kafka
Zipkin
Distributed
Tracing
Server
Postgresql/ mongodb
Distributed Tracing (Technology Stack)
• Zipkin Server
• Spring cloud sleuth ( generate request id)
• Spring cloud sleuth zipkin
• Spring cloud bus amqp
Fault Tolerance
Return default payment
method
Get Payment Get Payment
Order method Customer method Customer
(spring (spring (spring
boot) boot) boot)
Fault Tolerance
• Spring cloud hystrix
• Spring cloud turbine (“dashboard monitoring”)
CQRS and ES
Command Event Command
Service Processor Service
(spring (spring (spring
boot) boot) boot)
Writes Reads
Datastore
Event Store (Mongo/Post
(Kafka) gre)
CQRS and ES ( Technology Stack)
• Spring boot webflux
• Spring cloud stream
• Apache kafka
• Postgresql/mongodb