microservices-patterns-spring-integration
microservices-patterns-spring-integration copied to clipboard
Spring Integration implementations for well-known Microservices Patterns
= Microservices Patterns with Spring Integration
This project serves as a reference implementation of various Microservices Patterns described on https://microservices.io/index.html[Microservice Architecture] with https://spring.io/projects/spring-integration[Spring Integration Framework] and https://spring.io/projects/spring-boot[Spring Boot]. Since Spring Integration is fully based on messaging, which can be distributed, we also include some https://iwringer.wordpress.com/2015/08/03/patterns-for-streaming-realtime-analytics[Event Streaming Patterns] implementations together with https://spring.io/projects/spring-cloud-stream[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 https://start.spring.io[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:
- link:circuit-breaker[
circuit-breaker] - circuit breaker pattern implementation - link:distributed-tracing[
distributed-tracing] - distributed tracing pattern implementation - link:framer[
Framer] - multi-window distribution - link:mrpc[
mRPC] - request-reply via Spring Cloud Stream and RPI pattern - link:normalizer[
Normalizer] - an EIP Normalizer implementation - link:outbox[
Outbox] - transactional outbox pattern implementation