- A shopping front-end that emits an “Order Placed” event. Each event carries the order payload (order ID, items and quantities, totals, customer info, timestamps).
- A producer that serializes and publishes those events to an Apache Kafka topic.
- A Kafka deployment (provisioned on an EC2 instance in this project) that hosts the topic(s) and persists the event stream.
- A warehouse dashboard that acts as a Kafka consumer: it subscribes to the topic, deserializes messages, manages offsets and consumer groups, and updates the UI based on consumed events.
- User places an order in the front-end UI.
- The front-end producer packages and serializes the order payload and publishes it to a Kafka topic.
- Kafka stores the event in the topic partitions (running on an EC2-hosted broker for this project).
- The warehouse dashboard consumer (or multiple consumers in a consumer group) reads, deserializes, and processes events, then updates the UI and any downstream systems.

Testing tip: Validate each stage independently. Produce test events directly to the Kafka topic, consume them with a simple CLI consumer, then verify the dashboard logic. This helps isolate producer, broker, and consumer issues.
- Set up Kafka (cluster/topic provisioning)
- Build the front-end UI and producers to emit events
- Build the back-end/API and consumers to process those events and update the dashboard