This is a News Processing Pipeline

Spring Boot applications: producer-api, categorizer-service, collector-service, publisher-api, and news-client.

Technologies

Spring Cloud Stream: For scalable event-driven apps.

Spring Cloud Schema Registry: Supports schema evolution and storage.

Spring Data Elasticsearch: For data persistence in Elasticsearch.

Spring Cloud OpenFeign: Simplifies web service clients.

Thymeleaf: HTML templating.

Zipkin: Visualizes app traces.

Eureka: Service registration and discovery.

Applications Overview

producer-api: Creates and pushes news to Kafka.

categorizer-service: Categorizes news and pushes to a different Kafka topic.

collector-service: Saves news in Elasticsearch and pushes to another Kafka topic.

publisher-api: Reads from Elasticsearch and provides a REST API.

news-client: UI for news display and interacts with publisher-api.

Setup & Run

Generate NewsEvent:

./mvnw clean install --projects commons-news

Start Environment:

docker-compose up -d
docker-compose ps

Run Applications:

./mvnw clean spring-boot:run