# A daily_finance_close DAG started missing its 6am SLA after the upstream stripe_to_raw DAG migrated

Canonical URL: <https://datadriven.io/problems/a-dailyfinanceclose-dag-started-missing-its-6am-sla-after-b2674c3a>

Domain: Pipeline Design · Difficulty: medium

## Problem

A daily_finance_close DAG started missing its 6am SLA after the upstream stripe_to_raw DAG migrated from a 30-minute cadence to a 5-minute cadence. The cross-DAG seam was time-offset and the cadence change broke the implicit contract. Apply the postmortem framing this section just taught and redesign the seam structurally. (1) Replace the plain Snowflake raw.payments with a lakehouse format (Iceberg, Delta, or Hudi) so the asset has snapshot semantics; the daily_finance_close DAG fires on the asset's snapshot freshness rather than the clock. (2) Add an observability_tool monitoring the lakehouse asset's freshness with an alert_destination routing misses to on-call. (3) Split into two orchestrators so finance-close runs on its own priority path, isolated from the backfill workloads that compete for the same warehouse. The four pieces together replace a fragile time-offset with an explicit contract.

## Related

- [All practice problems](https://datadriven.io/problems)
- [Mock interview mode](https://datadriven.io/interview/a-dailyfinanceclose-dag-started-missing-its-6am-sla-after-b2674c3a)
- [System Design Interview Questions](https://datadriven.io/data-engineering-system-design)
- [Data Engineering Interview Prep Guide](https://datadriven.io/data-engineer-interview-prep)
- [Daily Challenge](https://datadriven.io/daily)

---

Source: DataDriven (https://datadriven.io). 100% free data engineering interview prep. Live code execution against Postgres 16, Python 3.11, and Spark sandboxes. No paywall, no premium tier, no signup gate.