A production-grade microservices platform for order fulfillment with high concurrency, distributed transactions (Saga pattern), and fault tolerance.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Client Applications β
β (Web App, Mobile App, Partners) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β API Gateway β
β (Auth, Rate Limiting, Routing, CORS) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββΌββββββββββββββββββ
βΌ βΌ βΌ
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β Order β β Inventory β β Payment β
β Service β β Service β β Service β
β (Saga) β β (Locking) β β (Idempotent) β
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β β β
βββββββββββββββββββΌββββββββββββββββββ
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Apache Kafka β
β (orders.created, inventory.reserved, payment.success) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β β
βΌ βΌ βΌ
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β Fulfillment β β Notification β β Redis β
β Service β β Service β β Cache β
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
- Saga Pattern - Distributed transactions with compensating actions
- Idempotency - Duplicate request handling with idempotency keys
- Database Locking - Pessimistic & optimistic locking for inventory
- Event-Driven - Kafka-based async communication
- Multi-Cloud - Terraform for AWS & GCP
- Observability - Structured logging, tracing, metrics
distributed-fulfillment-platform/
βββ .github/workflows/ # CI/CD pipelines
βββ api/ # API contracts
β βββ openapi/ # REST API specs
β βββ proto/ # gRPC definitions
βββ apps/ # Microservices
β βββ api-gateway/
β βββ order-service/
β βββ inventory-service/
β βββ payment-service/
β βββ fulfillment-service/
β βββ notification-service/
βββ libs/ # Shared libraries
β βββ common/
β βββ database/
β βββ messaging/
β βββ logger/
βββ infra/ # Infrastructure
β βββ docker-compose.yml
β βββ k8s/
β βββ terraform/
βββ tools/ # Scripts & utilities
- Go 1.23+
- Docker & Docker Compose
- Make
# Clone repository
git clone https://github.com/bhushanasati25/Distributed-Order-Fulfillment-Platform.git
cd Distributed-Order-Fulfillment-Platform
# Start infrastructure (PostgreSQL, Redis, Kafka)
make infra-up
# Run all services
make run-all
# Or run individual service
make run-order# Create an order
curl -X POST http://localhost:8080/api/v1/orders \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"customer_id": "cust_123",
"items": [
{"sku": "PROD-001", "quantity": 2, "price": 29.99}
],
"shipping_address": {
"street": "123 Main St",
"city": "New York",
"state": "NY",
"zip": "10001"
}
}'
# Check order status
curl http://localhost:8080/api/v1/orders/{order_id}1. Client β Order Service: POST /orders
2. Order Service: Creates PENDING order
3. Order Service β Kafka: Publish "OrderCreated"
4. Inventory Service: Consumes event β Reserves stock
5. Inventory Service β Kafka: Publish "StockReserved"
6. Payment Service: Consumes event β Charges card
7. Payment Service β Kafka: Publish "PaymentSuccess"
8. Order Service: Consumes event β Updates to CONFIRMED
9. Notification Service: Sends confirmation email
If Payment fails:
1. Payment Service β Kafka: Publish "PaymentFailed"
2. Inventory Service: Releases reserved stock
3. Order Service: Updates to CANCELLED
4. Notification Service: Sends cancellation email
| Component | Technology |
|---|---|
| Language | Go 1.23 |
| API | REST + gRPC |
| Messaging | Apache Kafka |
| Database | PostgreSQL 15 |
| Cache | Redis 7 |
| Container | Docker |
| Orchestration | Kubernetes |
| IaC | Terraform |
| CI/CD | GitHub Actions |
| Service | Port | Description |
|---|---|---|
| API Gateway | 8080 | Entry point, auth, rate limiting |
| Order Service | 8081 | Order lifecycle, Saga orchestrator |
| Inventory Service | 8082 | Stock management, reservations |
| Payment Service | 8083 | Payment processing, Stripe/PayPal |
| Fulfillment Service | 8084 | Shipping, FedEx/UPS integration |
| Notification Service | 8085 | Email/SMS notifications |
# Run all tests
make test
# Run with coverage
make test-coverage
# Integration tests (requires Docker)
make test-integration
# Load testing
make test-load- Metrics: Prometheus + Grafana
- Tracing: Jaeger / OpenTelemetry
- Logging: Structured JSON logs (zerolog)
docker-compose -f infra/docker-compose.yml up -d# Apply Helm charts
helm install fulfillment-platform ./infra/k8s/charts/platform
# Or using kubectl
kubectl apply -f ./infra/k8s/manifests/cd infra/terraform/aws # or gcp
terraform init
terraform plan
terraform applyMIT License - see LICENSE for details.
See CONTRIBUTING.md for contribution guidelines.
Bhushan Asati
- GitHub: @bhushanasati25
- Repository: Distributed-Order-Fulfillment-Platform