In this project I'm demonstrating you the most interesting features of Quarkus Project for building microservice-based architecture.
Currently, you may find here some examples of microservices implementation using different projects from Quarkus. Here's a full list of available examples in this repository:
- Using Quarkus for building microservices that may be easily deployed outside Kubernetes. Integrating Quarkus with Consul discovery and KV store. The example is available in the branch master. A detailed guide may be found in the following article: Detailed description can be found here: Quarkus Microservices with Consul Discovery
- [Latest] Quarkus with SmallRye Stork and Mutiny Consul Client. The example is available in the branch Consul with Quarkus and SmallRye Stork.
- Maven 3.6.3+
- JDK 21+
- Run Consul with Docker:
docker run -d --name=consul -e CONSUL_BIND_INTERFACE=eth0 -p 8500:8500 consul
- Run applications:
mvn compile quarkus:dev
Our sample microservices-based system consists of the following modules:
- gateway-service - a module that uses Spring Cloud Gateway for running Spring Boot application that acts as a proxy/gateway in our architecture.
- employee-service - a module containing the first of our sample microservices that allows to perform CRUD operation on in-memory repository of employees
- department-service - a module containing the second of our sample microservices that allows to perform CRUD operation on in-memory repository of departments. It communicates with employee-service.
- organization-service - a module containing the third of our sample microservices that allows to perform CRUD operation on in-memory repository of organizations. It communicates with both employee-service and department-service.
The following picture illustrates the architecture described above.