Microservices Patterns with Spring Integration
This project serves as a reference implementation of various Microservices Patterns described on Microservice Architecture with Spring Integration Framework and Spring Boot. Since Spring Integration is fully based on messaging, which can be distributed, we also include some Event Streaming Patterns implementations together with Spring Cloud Stream Framework.
Every single module of this project is fully independent and ready to use Spring Boot application for particular pattern: they are just generated via start.spring.io.
However, the $springBootVersion
variable might be changes since it is pulled from the gradle.properties
of the root project.
You can run ./gradlew test
(or build
) for the whole project or just chose specific module to run.
The tests in modules verify the pattern in action and its implementation with Spring Integration.
See specific module for more details of the pattern (or recipe) it implements and how:
-
circuit-breaker
- circuit breaker pattern implementation -
distributed-tracing
- distributed tracing pattern implementation -
Framer
- multi-window distribution -
mRPC
- request-reply via Spring Cloud Stream and RPI pattern -
Normalizer
- an EIP Normalizer implementation -
Outbox
- transactional outbox pattern implementation