Stockout Prevention Data Pipeline
An inventory data pipeline that converts stock changes into validated analytics, run evidence, reporting outputs, serving payloads, and a stockout-prevention backtest.
What it is
The product covers day-to-day inventory operations and the analytics needed to prevent stockouts.
The frontend monitor is read-only by design: it shows pipeline health, current metrics, data quality, and proof that an inventory write moved through the system.
The loop it has to make believable
- 01
Built the supported local path around inventory writes, pipeline processing, analytics serving, dashboard views, event delivery, and monitoring.
- 02
Used a transactional outbox to avoid dual writes between inventory mutations and downstream event publication.
How it’s built
The important technical choice is the event boundary. Inventory writes stay transactional, then outbox publication and ETL materialization handle downstream analytics.
The analytics service and Redis cache give the project a serving story, while processed-event logs, invalid-event tables, Parquet manifests, dbt marts, and DB run tables give it an audit trail.
Architecture
- Operational path
- Spring Boot inventory-service handles products, warehouses, adjustments, reservations, sales, and receipts
- Event path
- Transactional outbox writes in same DB transaction, relay publishes to Kafka with retry/give-up behavior
- Analytics path
- Python ETL writes current metrics, metric history, processed-event logs, invalid-event rows, Redis hot reads, Parquet manifests, and DQ runs
- Decision path
- Stockout-prevention backtest records recall, precision, estimated dollars saved, and fails CI below threshold
What has to hold up
- Made the ETL idempotent through processed-event tracking, persisted invalid events, and separated current metrics from metric history.
- Added reporting marts over daily sales and a stockout-prevention backtest with a 60% recall CI gate.
How I would present it
I would run the supported demo path and inspect the artifacts: before/after inventory, analytics payload, pipeline run, data quality, Redis key, and Parquet output.
The strongest resume angle is not real-time ML forecasting yet; it is event-driven inventory analytics with deterministic backtest evidence and a CI recall gate.
Proof
VerifyRepository, checks, stack, status
- 01
Open the GitHub repo and run `make demo`.
- 02
Inspect artifacts/demo, the backtest output, quality reports, and generated reporting artifacts.
- 03
Read the architecture section below for operational writes, event handoff, processing, serving, and reporting.
- 04
Check the README proof path and CI stockout-recall gate.
- Role
- Backend services, event flow, ETL, analytics API, demo proof artifacts
- Scope
- Event-driven inventory analytics and stockout-prevention proof pipeline
- Proof
- README, make demo, artifacts/demo, backtest harness, Docker Compose
- Stack
- Java, Spring Boot, Kafka, PostgreSQL, Redis, Python, FastAPI
- Backtest gate
- 60% recall
- Event path
- Transactional handoff
- Serving
- Analytics payloads
- Proof
- make demo