INTERACTIVE DEMOS
An e-commerce fulfillment network runs 8 warehouses (DFW, LAX, ORD, JFK, ATL, SEA, MIA, PHX). SKU demand shifts hourly based on promotions, viral trends, and weather. Having stock in the wrong warehouse means 2-day shipping instead of same-day.
| warehouse | sku | event_type | quantity | units_remaining | channel | ts |
|---|---|---|---|---|---|---|
| ATL | SKU-WB-2291 | sale | -6 | 480 | web | 2024-03-15T14:00:12.000Z |
| ATL | SKU-WB-2291 | sale | -8 | 472 | web | 2024-03-15T14:01:45.000Z |
| ATL | SKU-WB-2291 | sale | -12 | 460 | tiktok_shop | 2024-03-15T14:02:33.000Z |
| MIA | SKU-WB-2291 | sale | -5 | 310 | web | 2024-03-15T14:01:08.000Z |
| MIA | SKU-WB-2291 | sale | -9 | 301 | tiktok_shop | 2024-03-15T14:03:22.000Z |
| DFW | SKU-WB-2291 | sale | -2 | 4798 | web | 2024-03-15T14:02:50.000Z |
CREATE SOURCE inventory_events WITH (
connector = 'kafka',
topic = 'fulfillment.inventory_events',
properties.bootstrap.server = 'broker:9092'
) FORMAT PLAIN ENCODE JSON;
CREATE MATERIALIZED VIEW sku_velocity AS
SELECT
warehouse,
sku,
window_start,
SUM(CASE WHEN event_type = 'sale' THEN ABS(quantity) ELSE 0 END) AS units_sold,
SUM(CASE WHEN event_type = 'receipt' THEN quantity ELSE 0 END) AS units_received,
MIN(units_remaining) AS current_stock,
ROUND(
SUM(CASE WHEN event_type = 'sale' THEN ABS(quantity) ELSE 0 END)
* (3600.0 / EXTRACT(EPOCH FROM INTERVAL '15 MINUTES')), 0
) AS burn_rate_per_hour,
CASE
WHEN SUM(CASE WHEN event_type = 'sale' THEN ABS(quantity) ELSE 0 END) = 0 THEN 999.0
ELSE ROUND(
MIN(units_remaining)::NUMERIC
/ (SUM(CASE WHEN event_type = 'sale' THEN ABS(quantity) ELSE 0 END)
* (3600.0 / EXTRACT(EPOCH FROM INTERVAL '15 MINUTES'))),
1
)
END AS hours_until_stockout
FROM TUMBLE(inventory_events, ts, INTERVAL '15 MINUTES')
WHERE event_type IN ('sale', 'receipt')
GROUP BY warehouse, sku, window_start;| sku | from_warehouse | to_warehouse | transfer_qty | from_days_supply | to_hours_until_stockout |
|---|---|---|---|---|---|
| SKU-WB-2291 | DFW | ATL | 1200 | 25 | 4.4 |
| SKU-WB-2291 | DFW | MIA | 1200 | 25 | 6.1 |
| SKU-WB-2291 | PHX | ATL | 380 | 14.2 | 4.4 |