How samudralaajaykumarrr/omniflow works
OmniFlow is an event-driven retail order, inventory, and fulfillment platform with an authenticated operator dashboard and an analytics pipeline. The principal workflow is operator order submission through the gateway, order persistence and event publication, then asynchronous saga orchestration that reserves inventory and advances fulfillment. Event data also feeds Bronze/Silver/Gold analytics and forecasting. The README documents these major capabilities; sampled source confirms gateway proxying, inventory operations, saga APIs, and failure-lab triggering, but not every consumer, outbox, or pipeline implementation detail.
Main entry points: consumer.py Saga orchestrator · api Dashboard API clients · app/routes.py Order service · app/routes.py Inventory service
Components 21
Operator experience
- Ops dashboard
services/ops-dashboard/src/App.tsx - Dashboard API clients
services/ops-dashboard/src/api
Commerce services
- API gateway
services/api-gateway/app/routes.py - Order service
services/order-service/app/routes.py - Order database
services/order-service/app/db.py - Inventory service
services/inventory-service/app/routes.py - Inventory database
services/inventory-service/app/db.py
Event orchestration
- Kafka event bus
- Event contracts
services/event-contracts/event_contracts - Saga orchestrator
services/fulfillment-orchestrator/app/consumer.py - Saga and DLQ state
services/fulfillment-orchestrator/app/db.py
Analytics platform
- Streaming pipeline
services/data-platform/app/bronze.py - Silver transforms
services/data-platform/app/silver.py - Gold aggregates
services/data-platform/app/gold/runner.py - Parquet object store
services/data-platform/app/s3.py - Demand forecasting
services/data-platform/app/forecasting
Failure laboratory
- Failure-lab API
services/failure-lab/app/routes.py - Scenario runner
services/failure-lab/app/runner.py
Other components
- Ops user
- Live platform
- Tracing and metrics
Connections 28
- Ops user → Ops dashboard: uses
- Ops dashboard → Dashboard API clients: requests
- Dashboard API clients → API gateway: calls
- API gateway → Order service: proxies orders
- API gateway → Inventory service: proxies stock
- Order service → Order database: reads and writes
- Inventory service → Inventory database: reads and writes
- Order service → Kafka event bus: publishes events
- Inventory service → Kafka event bus: publishes events
- Kafka event bus → Saga orchestrator: delivers events
- Saga orchestrator → Event contracts: uses schemas
- Saga orchestrator → Order service: advances orders
- Saga orchestrator → Inventory service: reserves stock
- Saga orchestrator → Saga and DLQ state: stores saga and DLQ
- Saga orchestrator → Kafka event bus: publishes outcomes
- Kafka event bus → Streaming pipeline: streams topics
- Streaming pipeline → Parquet object store: writes Bronze
- Streaming pipeline → Silver transforms: validates and deduplicates
- Silver transforms → Parquet object store: writes Silver
- Silver transforms → Gold aggregates: aggregates
- Gold aggregates → Parquet object store: writes Gold
- Parquet object store → Demand forecasting: supplies datasets
- Dashboard API clients → Streaming pipeline: requests pipeline views
- Dashboard API clients → Saga orchestrator: requests saga and DLQ views
- Dashboard API clients → Failure-lab API: triggers scenarios
- Failure-lab API → Scenario runner: runs scenarios
- Scenario runner → Live platform: exercises services
- Event contracts → Tracing and metrics: configures telemetry