Spec-driven, event-sourced order management ecosystem for e-commerce fulfillment. The Order Intake bounded context handles order creation, confirmation, and lifecycle management.
Get Started View API Reference
Complete order lifecycle management from creation through fulfillment.
Capabilities:
curl -X POST http://localhost:8080/v1/orders \
-H "Content-Type: application/json" \
-d '{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@example.com",
"phone": "+1-555-0123"
},
"shippingAddress": {
"street": "123 Main St",
"city": "San Francisco",
"state": "CA",
"postalCode": "94105",
"country": "US"
},
"lines": [
{
"sku": "WIDGET-001",
"productName": "Premium Widget",
"quantity": 2,
"unitPrice": {
"amount": "29.99",
"currencyCode": "USD"
}
}
]
}'
curl -X POST http://localhost:8080/v1/orders/{orderId}/confirm
Result: Order transitions to CONFIRMED status and order.confirmed event published to Kafka.
DRAFT → CONFIRMED → SHIPPED → DELIVERED
↓ ↓
CANCELLED CANCELLED
States:
| Event | Kafka Topic | Trigger |
|---|---|---|
order.created |
oms.orders.created |
Order created |
order.confirmed |
oms.orders.confirmed |
Order confirmed |
order.cancelled |
oms.orders.cancelled |
Order cancelled |
order.shipped |
oms.orders.shipped |
Shipment created |
order.delivered |
oms.orders.delivered |
Delivery confirmed |
order.status_changed |
oms.orders.status-changed |
Any status change |
| Service | Purpose | Repository |
|---|---|---|
| Order Intake | Order creation & management | mcp-log/oms |
| Planning | Fulfillment planning | mcp-log/planning |
| Fulfillment | Pick, pack, ship | future |
| Shipping | Carrier integration | future |
Each bounded context is independently deployable with its own database and event stream.