At a glance
A dual-axis chart that plots Databricks pipeline lag (how stale your data is) against live ecommerce order flow over the last 24 hours. The dangerous pattern is the divergence: orders are still flowing into the storefront, but the pipeline that turns those orders into fresh data has stalled. Every minute the pipeline sits stuck while orders keep arriving is a minute your dashboards, inventory marts, and downstream automations are working from a frozen picture of the business. This card is the data-freshness early-warning for the platform team.
Calculation
The card overlays two series over the trailing 24 hours. The Databricks series is pipeline lag in seconds. For a scheduled Job, lag is the elapsed time since the last run finished withresult_state = SUCCESS; for a DLT pipeline, it is the time since the latest successful update or processed watermark. The engine reads the run history (/api/2.1/jobs/runs/list) and the pipeline state (/api/2.0/pipelines), takes the most recent success timestamp, and measures the gap to now. This is the same measurement that drives the Pipeline Lag (since last success) card, plotted as a time series.
The ecommerce series is order flow: orders per interval from the connected storefront over the same window.
The divergence test is contextual, not a fixed number. Each pipeline has an expected processing interval (its schedule, or its streaming trigger cadence). Lag is normal up to roughly that interval; a job that runs hourly is expected to show up to an hour of lag just before its next run. The card flags when lag exceeds the expected interval (the pipeline has missed a run or stalled mid-stream) at the same time as order flow remains active. Lag with no orders is benign (quiet period, nothing to process); orders with no lag is healthy; the combination of stalled pipeline and live orders is the revenue-at-risk state this card exists to catch.
Worked example
A fashion retailer uses a Databricks DLT pipeline to stream orders from its Shopify storefront into a near-real-time inventory mart. Merchandising dashboards and the low-stock reorder automation both read that mart. The pipeline’s streaming trigger fires every 5 minutes, so anything under about 6 minutes of lag is normal. Reading taken on Thursday 18 Jun 26, covering the last 24 hours, with the close-up below from 14:00 to 15:00 BST.
Up to 14:25 the two series move together: a small, steady lag and a busy afternoon of orders. At 14:35 the lag line starts climbing while the order line carries on; by 14:45 the lag has passed the expected 6-minute interval four times over and the alert fires. Orders are still arriving at roughly 50 per ten minutes, but none of them have reached the inventory mart for over 24 minutes.
- Order flow is what turns lag from a metric into a risk. Lag during a quiet overnight window costs nothing. The exact same lag during a busy afternoon is orders piling up unseen. Always read lag against flow, never alone.
- Stalled is not the same as down. The most expensive freshness failures are the ones where everything looks green: cluster running, job in
RUNNINGstate, no failure alert. A retry loop or a stuck watermark keeps lag climbing while status stays healthy. This card catches the symptom (data not landing) rather than relying on the status flag. - Lag has a blast radius. Stale data is not just a stale dashboard; it is every automation downstream of the mart. Reorder logic, pricing rules, fraud checks and personalisation can all act on a frozen view. When this card fires, check what reads the affected tables, not just the tables themselves.
Sibling cards
Reconciling against the source
Where to look in Databricks for the lag side:
Workflows → Jobs → [job] → Runs for the last successful run timestamp of a scheduled Job; the gap to now is the lag.
Delta Live Tables → [pipeline] for the DLT update history and event log; the latest successful update’s end time is the lag anchor.
system.lakeflow.job_run_timeline (Unity Catalog) to query last-success times across jobs programmatically.
Where to look for the ecom side:
Order flow comes from the connected storefront’s own live order feed (Shopify, BigCommerce or Adobe Commerce). Match the same intervals and time zone.Why our number may legitimately differ:
Cross-connector reconciliation:
Known limitations / FAQs
Lag is high but the card did not flag. Why? Because order flow was low or zero at the same time. Lag during a quiet period (overnight, between batch windows) is expected and harmless: there is nothing to process. The alert only fires when lag exceeds the expected interval while orders are actively flowing, which is the only state that puts revenue data at risk. Our pipeline runs hourly, so lag is always rising until the next run. Is that a false alert? No. The card knows each pipeline’s expected interval, so an hourly job is allowed up to about an hour of lag before the next run. The alert only fires when lag exceeds that expected interval, meaning a run was actually missed or a streaming update has stalled, not merely that you are mid-cycle. The cluster is up and the job shows RUNNING, but the card says the pipeline is stalled. How? That is exactly the case this card is built for. A job can be inRUNNING state while stuck in a retry loop, blocked on a lock, or held by a watermark that is not advancing. Up/down and run-state checks miss this; lag-against-flow catches it because no new data is landing despite live orders. Check the DLT event log or the run’s Spark UI for a stuck or repeatedly retrying stage.
How is lag defined for a continuous (always-on) streaming pipeline?
For continuous pipelines there is no discrete run-end, so lag is measured from the latest processed watermark or the last committed micro-batch. If that watermark stops advancing while orders flow, lag climbs and the card flags it, which is the correct behaviour even though the pipeline never formally “finished”.
Which pipelines does this card watch?
By default the tracked Jobs and DLT pipelines configured for the connector. If you have many pipelines, the headline summarises the worst-lagging one against order flow; drill in to see the per-pipeline breakdown. To scope to specific business-critical pipelines (for example, only the order and inventory marts), set the pipeline scope in the connector settings.
Can stale data cause harm even after the pipeline recovers?
Yes, and this is the part teams underestimate. While lag was high, every downstream consumer of the affected tables acted on a frozen view: reorder automations, pricing rules, personalisation, fraud scoring. After recovery the data is fresh again, but any decisions taken during the stall were made blind. When this card fires, audit what ran against the stale tables during the window, not just the pipeline itself.