A distributed soul harvesting system powered by Apache Kafka. Built to master the dark arts of Event Streaming.
Soul Stream is a microservices-based application that simulates a "Soul Selling" process. It demonstrates the power of Apache Kafka to decouple services and ensure that no soul (data) is ever lost in the void, even if the gatekeepers (services) are asleep.
NOTE: This is a learning project designed to explore Kafka, Docker Compose, and Event-Driven Architecture.
| The Offering (Frontend) | The Verdict (Revelation) |
|---|---|
![]() |
![]() |
| The Architecture (Docs) | Live Soul Log |
|---|---|
![]() |
![]() |
The system is composed of 4 independent services (Realms) communicating purely through Kafka events:
-
Contract Service (
contract-service):- Role: The entry point. Accepts the user's name and signs the blood contract.
- Tech: Python, FastAPI.
- Event: Produces
contracts.
-
Judgment Service (
judgment-service):- Role: Consumes contracts and judges the soul (Guilty, Pure, etc.).
- Tech: Python, AIOKafka.
- Event: Consumes
contracts→ Producesjudgments.
-
Limbo Service (
limbo-service):- Role: The sorting hat. Assigns a final destination (Void, Greed, Frozen Lake).
- Tech: Python, AIOKafka.
- Event: Consumes
judgments→ Producesascensions.
-
Revelation Service (
revelation-service):- Role: The final messenger. Delivers the dramatic final verdict to the user.
- Tech: Python, AIOKafka.
- Event: Consumes
ascensions→ Producesrevelations.
-
Frontend (
frontend):- Role: The visual interface for the mortal user.
- Tech: Next.js, TailwindCSS, Framer Motion, WebSockets.
Summon the entire infrastructure with a single incantation:
docker-compose up -d --buildAccess the portal at: http://localhost:3000
To prove the ritual was successful, observe the following manifestations:
- Mortal enters name → Contract Service (HTTP).
- Contract Service → Kafka
contractstopic. - Judgment Service → Reads
contracts→ Kafkajudgmentstopic. - Limbo Service → Reads
judgments→ Kafkaascensionstopic. - Revelation Service → Reads
ascensions→ Kafkarevelationstopic. - Frontend → Listens via WebSocket → Displays Final Verdict.
- Core: Apache Kafka, Zookeeper
- Backend: Python 3.9, FastAPI, AIOKafka
- Frontend: Next.js 15, React 19, TailwindCSS, Framer Motion
- Infrastructure: Docker, Docker Compose
Created by HimanM as a journey into the depths of Distributed Systems.






