A microservice for Smart Supply Chain Management System that consumes order data from Apache Kafka, processes it, and updates PostgreSQL inventory. The system is containerized using Docker Compose.
- Kafka consumer and producer using
confluent-kafka - PostgreSQL integration via
psycopg2 - Logic to find the nearest warehouse and update inventory
- Dockerized infrastructure for Kafka, PostgreSQL, consumers, and pgAdmin
- Python 3.10+
- Apache Kafka
- PostgreSQL
- Docker & Docker Compose
- pgAdmin
scms-warehouse-consumer/
├── docker-compose.yml
├── README.md
├── db-init/
│ └── inventory.sql
├── Kafka_config/
│ ├── init.py
│ └── main.py
├── order_consumer/
│ ├── Dockerfile
│ ├── main.py
│ └── requirements.txt
├── order_producer/
│ └── main.py
├── order-init/
│ └── order.sql
├── warehouse_consumer/
│ ├── Dockerfile
│ ├── main.py
│ └── requirements.txt
git clone https://github.com/your-org/scms-warehouse-consumer.git
cd scms-warehouse-consumerCreate a virtual environment:
python -m venv .venv
.venv\Scripts\activate # WindowsInstall dependencies:
pip install -r warehouse_consumer/requirements.txt
pip install -r order_consumer/requirements.txtOr install directly:
pip install confluent-kafka psycopg2-binaryBuild and start all services:
docker-compose up --buildtopic: Main order topic for producer/consumerinventory_ack: Used for inventory acknowledgment
- order_producer: Publishes order messages to Kafka.
- warehouse_consumer: Consumes orders, finds nearest warehouse, updates inventory in PostgreSQL.
- order_consumer: Listens for inventory acknowledgments and updates order status.
- Kafka_config: Kafka topic creation and configuration scripts.
MIT