- Eduardo Cristóbal
- Linkedin: https://www.linkedin.com/in/ecristobale
- GitHub: https://github.com/ecristobale
- Email: Eduardo Cristóbal - email
The goal of this project is to create a microservices system using Spring Boot 3 and Java 17 . The following technologies and tools are used:
- Spring Cloud
- Swagger (OpenAPI)
- Spring Cloud Streams with Kafka
- Kafka topics:
- consumerReport for Kafka Consumer: on received invoke service for writing in MongoDB
- consumerCbReport for Kafka Listener (sending serialized entity as JSON string): on received invoke service for write in PostreSQL
- Docker: dockerized each microservice and resource (Kafka, Mongo DB, Postgre DB)
- Microservices: Registry Service (Eureka), Config Service, Feign, Load Balancer, Spring Cloud Gateway, Circuit Breaker pattern
- Spring Security Oauth2 + JWT
- DBs: PostgreSQL and MongoDB
- Postman
- DBeaver and Studio 3t
- IntelliJ
- Visual Studio Code
- Sourcetree
- Docker Desktop
-
Eureka Server registered some instances of companies microservice:
-
GitHub project with .yml files (profiles: default, prod and qa) for config-server:
-
Feign with Load Balancer to communicate between microservices:
-
Spring Cloud Streams with Kafka: consuming Kafka message and saving it to MongoDB:
-
Schema: circuit breaker (fallback part) with Kafka for writing operations:
-
Spring Cloud Streams with Kafka: Kafka listener event message received as JSON string and saving it to Postre DB: