I developed two applications in the domain of the project. In the first project named panel-api, you can do advert related operations (like create, update, remove, approve or disapprove and show the adverts).
When the panel-api publishes a message that needs to index or un-index the advert, the second project named search-consumer reacts to the messages published and indexes or un-indexes the advert.
The aim of the project was creating a project with state-of-the-art-tools, microservices architecture and Hexagonal architecture.
I tried to use best known technologies in the project. The list of technologies will be listed below.
These instructions will give you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on deploying the project on a live system.
- Docker
- JDK 17+
- Maven
docker-compose up
First run the stack (Elasticsearch, Kibana, Postgresql, Kafka)
docker-compose -f docker-compose.stack.yml up
Then start development, run everything locally without creating images.
mvn clean test
- Java 17
- Spring Boot
- Kafka
- Postgresql
- Elasticsearch
- Kibana
- Protobuf
- Testcontainers