Build an Order Processing Kafka Streams Application

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.