An open API service indexing awesome lists of open source software.

https://github.com/ecristobale/ddd-microservices-springcloud-docker-kafka

System that uses dockerized Spring Cloud Microservices, applies Domain Driven Design (DDD), implements OpenAPI with Swagger, uses Spring Cloud Streams with Kafka and Spring Cloud elements such as Config Server, Feign, Gateway and JWT. It is connected to Postgre DB and Mongo DB (dockerized aswell). Used Postman and DBeaver for testing purposes.
https://github.com/ecristobale/ddd-microservices-springcloud-docker-kafka

circuit-breaker ddd-architecture docker docker-desktop dockerdesktop domain-driven-design eureka feign intellij kafka lombok openapi spring-boot-3 spring-cloud spring-cloud-config-server spring-cloud-gateway spring-cloud-stream springboot3 springcloud swagger

Last synced: 2 months ago
JSON representation

System that uses dockerized Spring Cloud Microservices, applies Domain Driven Design (DDD), implements OpenAPI with Swagger, uses Spring Cloud Streams with Kafka and Spring Cloud elements such as Config Server, Feign, Gateway and JWT. It is connected to Postgre DB and Mongo DB (dockerized aswell). Used Postman and DBeaver for testing purposes.

Awesome Lists containing this project

README

        

# Microservices with Spring Cloud, Docker, DDD (Domain Driven Design), Kafka, Swagger (OpenAPI), PostgreSQL, Spring Boot 3

## DEVELOPER
* Eduardo Cristóbal
* Linkedin: [https://www.linkedin.com/in/ecristobale](https://www.linkedin.com/in/ecristobale)
* GitHub: [https://github.com/ecristobale](https://github.com/ecristobale)
* Email: [Eduardo Cristóbal - email](mailto:[email protected])

## DESCRIPTION
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
* Docker
* Swagger (OpenAPI)
* Spring Cloud Streams with Kafka
* DDD (Domain Driven Design)
* Microservices: Registry Service (Eureka), Config Service, Feign, Load Balancer, Spring Cloud Gateway, Circuit Breaker pattern
* DBs: PostgreSQL and MongoDB
* Postman
* DBeaver and Studio 3t
* IntelliJ
* Visual Studio Code
* Sourcetree
* Docker Desktop

### Microservices system arquitecture:

![Alt text](readme-screenshots/01-microservices-arquitecture.png?raw=true "Microservices system arquitecture")

### Screenshots:

* Eureka Server registered some instances of companies microservice:
![Alt text](readme-screenshots/02-microservices-eureka.png?raw=true "Eureka Server")

* Swagger (OpenAPI) for companies microservice:
![Alt text](readme-screenshots/03-microservices-swagger-openapi.png?raw=true "Swagger (OpenAPI)")

* GitHub project with .yml files (profiles: default, prod and qa) for config-server:
![Alt text](readme-screenshots/04-microservices-config-server-github-yml.png?raw=true "GitHub .yml files for Config Server")

* Feign with Load Balancer to communicate between microservices:
![Alt text](readme-screenshots/05-microservices-feign-with-load-balancer.png?raw=true "Feign with Load Balancer")

* Spring Cloud Streams with Kafka: consuming Kafka message and saving it to MongoDB
![Alt text](readme-screenshots/06-microservices-kafka-mongo.png?raw=true "Consuming Kafka message and saving it to MongoDB")