https://github.com/ad1822/rtorderprocessing
Kafka Microservice Application for Order Processing
https://github.com/ad1822/rtorderprocessing
docker-compose kafka microservices nodejs postgresql ts
Last synced: about 2 months ago
JSON representation
Kafka Microservice Application for Order Processing
- Host: GitHub
- URL: https://github.com/ad1822/rtorderprocessing
- Owner: ad1822
- Created: 2025-05-01T02:49:31.000Z (about 1 year ago)
- Default Branch: dev
- Last Pushed: 2025-05-05T11:08:21.000Z (about 1 year ago)
- Last Synced: 2025-05-05T12:24:58.046Z (about 1 year ago)
- Topics: docker-compose, kafka, microservices, nodejs, postgresql, ts
- Language: TypeScript
- Homepage:
- Size: 73.2 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🛒 Order Processing System – Microservices Architecture
A Kafka-based microservices project implementing a distributed **Order Processing System**, comprised of three independent services: **Order**, **Inventory**, and **Payment**. These services communicate asynchronously using Kafka topics to ensure loose coupling and high scalability.
## Diagram

## 📦 Microservices
### 1. **Order Service**
- Accepts customer orders.
- Publishes events to Kafka.
- Listens for payment status updates.
### 2. **Inventory Service**
- Listens for new order events.
- Checks and reserves inventory.
- Publishes success or failure events.
### 3. **Payment Service**
- Listens for reserved inventory events.
- Simulates/generates payment.
- Updates payment status.
Each service has its own isolated **PostgreSQL** database instance for data encapsulation and autonomy (following the **Database per Service** pattern).
---
## 🔄 Kafka Topics
| Kafka Topic | Description | Publisher | Subscriber(s) |
| -------------------------- | ------------------------------------------------------ | ----------------- | --------------------------------- |
| `order.created.v1` | Published when a new order is created. | Order Service | Inventory Service |
| `inventory.reserved.v1` | Published after inventory is successfully reserved. | Inventory Service | Payment Service |
| `inventory.failed.v1` | Published if inventory reservation fails. | Inventory Service | Order Service |
| `payment.generated.v1` | Published when payment is generated/simulated. | Payment Service | Order Service |
| `order.payment.updated.v1` | Published to notify order status update after payment. | Order Service | (For downstream services, if any) |
---