Skip to content

System that uses dockerized Spring Cloud Microservices, 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.

Notifications You must be signed in to change notification settings

ecristobale/microservices-springcloud-docker-kafka

Folders and files

NameName
Last commit message
Last commit date

Latest commit

8ee1e62 · Mar 23, 2025

History

71 Commits
Mar 7, 2025
Mar 21, 2025
Mar 20, 2025
Mar 23, 2025
Mar 21, 2025
Mar 20, 2025
Mar 21, 2025
Mar 10, 2025
Mar 19, 2025
Mar 23, 2025
Mar 20, 2025
Mar 21, 2025
Mar 23, 2025
Mar 10, 2025
Mar 23, 2025
Mar 23, 2025
Mar 23, 2025

Repository files navigation

Microservices with Spring Cloud, Docker, Kafka, Swagger (OpenAPI), PostgreSQL, Spring Boot 3

DEVELOPER

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
  • 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

Microservices system arquitecture:

Alt text

Screenshots:

  • Eureka Server registered some instances of companies microservice: Alt text

  • Swagger (OpenAPI) for companies microservice: Alt text

  • GitHub project with .yml files (profiles: default, prod and qa) for config-server: Alt text

  • Feign with Load Balancer to communicate between microservices: Alt text

  • Spring Cloud Streams with Kafka: consuming Kafka message and saving it to MongoDB: Alt text

  • Schema: circuit breaker (fallback part) with Kafka for writing operations: Alt text

  • Spring Cloud Streams with Kafka: Kafka listener event message received as JSON string and saving it to Postre DB: Alt text

  • Dockerized each ms and resource from docker-compose: Alt text

  • Dockerized each ms and resource from Docker desktop: Alt text

About

System that uses dockerized Spring Cloud Microservices, 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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published