Master event-driven microservices architecture with patterns using Spring Boot, Spring Cloud, Kafka and Elasticsearch.
Implemented Microservice Patterns Are:
- Externalized configuration with Spring Cloud Config
- CQRS with Kafka and Elastic Search
- Api versioning for versioning of Rest APIs
- Service registration and discovery with Spring Cloud and Netflix Eureka
- Api gateway with Spring Cloud Gateway
- Circuit breaker with Spring Cloud Gateway and Resilience4j
- Rate limiting with Spring Cloud Gateway and Redis to use Redis as the rate limiter
- Distributed tracing with SLF4J MDC, Spring Cloud Sleuth and Zipkin
- Log aggregation with ELK stack (Elasticsearch, Logstash and Kibana)
- Client side load balancing with Spring Cloud load balancer
- Database per service
- Messaging between microservices using Kafka
- Spring Security Oauth 2.0 and OpenID connect protocols for Authentication and Authorization using Keycloak and JWT
Project Schema: