How balwa/eta-mlops works
This is an MLOps teaching repository built around a food-delivery ETA service. Its principal workflow generates seeded order data, derives trustworthy delivery-time labels, builds restaurant features and trains a model; the running service combines a request with its cached feature store to return an ETA. The graph also shows the optional UI, store-corruption exercise and experiment tracking. README documents additional course topics, but their broader integrations are not represented as runtime components where the supplied tree or excerpts do not establish their wiring.
Main entry points: service.py ETA API · ui.py Browser UI · generate.py Order generator · label.py Label and split
Components 16
Data preparation
- Order generator
eta/generate.py - Raw orders
- Label and split
eta/label.py - Labelled orders
- Feature-store job
eta/feature_job.py
ETA serving
- Feature store
- ETA model
- ETA API
eta/service.py - ETA response
- Browser UI
eta/ui.py
Course experiments
- Model training
eta/train.py - Run tracking
track.py - Loss sweep
loss_sweep.py - Imbalance study
imbalance.py
Operations
- Store corruption
eta/corrupt.py
Other components
- Student / caller
Connections 23
- Student / caller → Order generator: runs
- Order generator → Raw orders: writes
- Raw orders → Label and split: reads
- Label and split → Labelled orders: writes
- Labelled orders → Model training: trains from
- Model training → ETA model: writes
- Student / caller → Feature-store job: runs
- Feature-store job → Feature store: refreshes
- Student / caller → ETA API: requests prediction
- ETA model → ETA API: loads
- Feature store → ETA API: loads and looks up
- ETA API → ETA response: returns
- Student / caller → Browser UI: uses
- Browser UI → ETA API: calls predict
- Browser UI → ETA API: reads store info
- Student / caller → Store corruption: runs
- Store corruption → Feature store: edits or rebuilds
- Student / caller → Run tracking: runs experiment
- Labelled orders → Run tracking: reads split data
- Student / caller → Loss sweep: runs experiment
- Labelled orders → Loss sweep: reads split data
- Student / caller → Imbalance study: runs experiment
- Labelled orders → Imbalance study: reads split data