Monorepo demo showing an event-driven e-commerce microservices setup (Kafka + ElasticSearch in the broader project). This workspace contains several small services implemented in TypeScript (and one legacy JS service) used for demos and local development.
Services included
broker/— Docker Compose and Kafka setup used by the services for messaging.catalog_service/— Product catalog service (TypeScript, Prisma, Express, Jest tests).order_service/— Orders and cart service (TypeScript, Drizzle, Express).payment_service/— Payment handling microservice.user_service/— Lightweight user/auth service (legacy JS example).db/— Database docker-compose and DB utilities (for local DB instances).
High-level goals
- Demonstrate an event-driven architecture using Kafka for inter-service communication.
- Provide small, focused services that can be run independently for testing and learning.
Prerequisites
- Node.js (v18+ recommended)
- npm (or pnpm)
- Docker & Docker Compose (for Kafka and database)
Quick start (development)
- Start infrastructure
-
Start Kafka and related broker components:
cd broker docker-compose up -d -
Start database services if needed:
cd db docker-compose up -d
- Run a service locally
Each service is an independent Node project. Typical workflow (example: catalog_service):
take a look on specific README.MD on each service to running it smoothly
Open issues and PRs. Include tests for any functional changes.
No license file provided — add LICENSE if you plan to open-source this repository.
If you'd like, I can next:
- Add
.env.examplefiles for each service. - Add CI to run tests across the workspace.
- Create a dev script to start infra and selected services.
Tell me which follow-up you'd like and I'll implement it.