Build an Order Processing Kafka Streams Application
E-commerce applications use intensive data pipelines to analyze user behavior for recommendations and improve efficiency.
In this project, we will build a Kafka Streams application to process incoming orders.
An incoming order is a Kafka message with a key representing a user ID and a value with the following structure:
{"products": ["product1", "product2"]}
Our application should perform the following tasks for each incoming order:
For each product, finds out if it has a known category. If not, publishes the product to another topic unknown-category-products.
Maintains a count of the sum of products ordered per user. The count should be exposed using a REST API.