Logistics

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.

A TikTok viral moment drove 14x demand for SKU-WB-2291 (Stanley tumbler) in the Southeast. ATL and MIA warehouses sold out in 2 hours while DFW sat on 4,800 units.
LIVEinventory_events
warehouseskuevent_typequantityunits_remainingchannelts
ATLSKU-WB-2291sale-6480web2024-03-15T14:00:12.000Z
ATLSKU-WB-2291sale-8472web2024-03-15T14:01:45.000Z
ATLSKU-WB-2291sale-12460tiktok_shop2024-03-15T14:02:33.000Z
MIASKU-WB-2291sale-5310web2024-03-15T14:01:08.000Z
MIASKU-WB-2291sale-9301tiktok_shop2024-03-15T14:03:22.000Z
DFWSKU-WB-2291sale-24798web2024-03-15T14:02:50.000Z
Streaming SQLRunning
Compute per-warehouse SKU velocity and stockout ETA
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;
Identify rebalancing opportunities (surplus warehouse to deficit warehouse)
rebalance_actionsauto-updating
skufrom_warehouseto_warehousetransfer_qtyfrom_days_supplyto_hours_until_stockout
SKU-WB-2291DFWATL1200254.4
SKU-WB-2291DFWMIA1200256.1
SKU-WB-2291PHXATL38014.24.4
RisingWave detects ATL burn rate at 340 units/hour with only 180 remaining. Triggers inter-warehouse transfer of 1,200 units from DFW within 45 minutes of the demand spike.
Best-in-Class Event Streaming
for Agents, Apps, and Analytics
GitHubXLinkedInSlackYouTube
Sign up for our to stay updated.