This project exists because there is a need for integrating distributed systems with real-time data processing capabilities.
Thinking about solving this problem, the project was born with the objective of understanding how to build a robust solution for real-time data streaming and processing for the data consistency and real-time analysis problems to be resolved in an optimized way.
This project was developed using Java with Spring Boot and Apache Kafka.
The problem of data inconsistency and delayed processing in distributed systems appeared when users felt the need to perform real-time data analysis and did not find a simple way to do it.
To meet the functionality of real-time data streaming and processing, the application was developed to optimize this process.
- Real-time data streaming;
- Data processing and analysis;
- Scalability and fault tolerance.
Make sure to set up your environment with Java, Spring Boot, and Apache Kafka. It is recommended to use the versions listed in the compatibility matrix.
Tool | Supported Version |
---|---|
Java | 11.0 |
Spring Boot | 2.5.0 |
Apache Kafka | 2.8.0 |
Docker | 26.0.0 |
Docker-compose | 2.23.3 |
Add kafka as an available host in /etc/hosts:
127.0.0.1 kafka
To run Apache Kafka, use the docker-compose to create its containers:
$ docker-compose up
To run the application, execute the command below in a terminal:
$ ./mvnw spring-boot:run
Send this request as curl:
curl --location 'http://kafka:8080/kafka/my-topic' \
--header 'Content-Type: application/json' \
--data '{
"message": "Apache Kafka is awesome"
}'
Considering:
- my-topic: as the Producer/Consumer Kafka listening topic
- message: the message to be sent
You can check the sent messages running this:
docker exec <your-container-name> /bin/kafka-console-consumer --bootstrap-server kafka:9092 --topic my-topic --from-beginning
Please refer to the contribution guidelines for detailed instructions on sending pull requests.
This project follows SemVer for version control.
Luis Felipe Brum is the author of this project. He is a Backend developer with experience in information security and integration architecture.
Colaborator | Github |
---|---|
Luis Felipe Brum | atalhox |