Est.

On-Call Rotations for Data Pipelines in DataOps Teams

Treating data failures like web outages requires SRE discipline, not batch-job thinking.

· 10 min read
Cover illustration for “On-Call Rotations for Data Pipelines in DataOps Teams”
DataOps Practices · October 5, 2026 · 10 min read · 2,313 words

Data pipelines have crossed a line that most organizations haven't fully reckoned with: a freshness gap or a completeness drop on a critical table is now a customer-visible outage, not a background inconvenience that fixes itself by morning. That change in stakes is what makes site-reliability discipline the correct response for data teams, not an optional borrowing from web engineering.

Data pipelines now demand the same operational contracts as web services

For years, the working model for data pipelines was simple: they were batch jobs, and batch jobs that failed could be rerun. A late load meant a slightly stale report, and nobody outside the data team much noticed. That model breaks down once downstream consumers stop being a handful of analysts checking a dashboard once a week. Once a pipeline feeds a feature store that an ML model reads at inference time, or a reverse-ETL job that syncs customer data into a sales tool, the pipeline is no longer behind the scenes. It is production infrastructure with users who expect it to work.

Consider a two-hour freshness gap on an orders table. In the old framing, that's a minor annoyance that resolves on the next scheduled run. Under the new one, it carries the same business weight as a web service returning 500 errors to customers, because a stale orders table means wrong inventory counts, wrong revenue dashboards, and wrong inputs to whatever automated system acts on that data in the meantime. The technology hasn't changed as much as the dependency graph around it has. Companies that built data platforms to answer questions once a week now run them as the backbone of decisions made every minute, and the operational posture hasn't caught up to that shift in most organizations.

The shortfall appears less in the pipelines themselves than in how teams run them. Web SRE teams spent roughly a decade building that discipline, codified in practices like Google's SRE Workbook, and data teams are only beginning to import it.

A fair objection follows: pipelines aren't web services, so maybe the borrowed concepts don't fit. The principles, service-level indicators, error budgets, runbooks, and blameless review, transfer completely. What has to change is the specific indicators a data team measures and the specific failure modes those indicators are built to catch. That rewrite is the substance of this piece. A data platform running without these contracts is running critical infrastructure on hope, and that gap produces outages nobody could predict and incidents nobody owns.

How pipelines fail differently

Pipeline failures rarely announce themselves the way a web service outage does. A web service either answers requests or it doesn't, and the failure is visible within seconds. A pipeline can run to completion, log a success message, and still have quietly dropped a third of its rows, skewed a filter condition, or loaded a table six hours later than anyone downstream expected. These failures are partial, often silent, and spread across more than one dimension at once. A team that watches only whether its DAGs succeed or fail will miss most of the actual ways data degrades in production.

Four axes capture the shape of these failures, and a mature data on-call program needs to instrument all of them. Freshness measures how current the data is relative to when consumers expect it. Quality measures the fraction of rows passing schema and constraint checks, and it's the axis most likely to fail without tripping any alarm, because a pipeline full of rows that are technically present but semantically wrong will corrupt a machine learning model or a revenue metric long before anyone notices the run itself "failed."

Those four axes produce the actual failure modes that generate the incidents. Untested semantic logic is the third and often the most dangerous, because a single filter clause changed in a transformation step can skew a monthly recurring revenue calculation across every dashboard that reads from it, with no process technically failing.

None of this maps onto the service-level indicators web SRE teams rely on. Request latency, error rate, throughput, and availability describe whether a system answers requests correctly and on time. The indicators have to be rebuilt from scratch, shaped around how data actually breaks rather than how services do.

Defining SLIs and SLOs for pipelines

A reliability program for data pipelines becomes operational the moment a team sits down with its downstream consumers and negotiates explicit service-level objectives, then turns those targets into error budgets that decide when an engineer gets paged and when the team stops building features to fix the pipeline instead. Measurement without that negotiation is just a dashboard nobody is accountable to.

Each of the four failure axes, freshness, completeness, volume, and quality, needs its own service-level indicator and its own target. These are separate dials with separate consequences. A freshness miss on an orders table has a different downstream effect than a completeness miss on a marketing attribution table, and treating them as one undifferentiated "pipeline health" score hides which failure is actually hurting the business.

The error budget is what turns a target into something a team can act on day to day. Once that ceiling is crossed, the rule is simple: feature work pauses and reliability work takes priority, because the team has spent its allowance for the month and further lateness starts costing the business directly rather than theoretically.

Those targets can't be set unilaterally by the data team and handed down as fact. They need to be negotiated with the teams that actually depend on the data: BI teams, the ML platform team, product teams reading from a feature store. That negotiation is where the on-call engineer's authority to escalate actually comes from, and it's what gives a postmortem's action items weight once the meeting ends, because the business has already agreed that missing the target is a real cost, not an internal data-team concern.

Binary thresholds (alert the instant freshness crosses some fixed line) tend to either flood the pager with noise or miss slow degradation. Burn-rate alerting handles both problems by watching how fast the error budget is being consumed rather than whether a single threshold was crossed. Google's SRE Workbook sets a target of no more than two actionable incidents per on-call shift as a sustainable baseline, and burn-rate alert design is the mechanism that actually enforces that ceiling, filtering out noise before it ever reaches a human pager.

Every alert must link to a runbook from SRE practice, and no alert without a runbook link gets to fire. That rule forces a team to answer, for every single alert, whether there is actually something a human can do about it. If there isn't, the alert shouldn't exist.

Structuring the on-call rotation: team sizing, shift models, and handoff rituals

Designing a rotation is as much a decision about keeping engineers at the company as it is a decision about catching incidents. A rotation that pages people too often, or pages them without the support to resolve what they're paged for, will burn through a data team faster than any pipeline failure will. Jellyfish's State of Engineering Management Report found that a majority of engineering respondents experienced burnout in the past year, broken down by team size and role, and on-call load unmoored from any sustainability target is one of the more direct paths to that outcome.

Three rotation models cover most situations a data team will encounter. Round-robin rotations with shadow shifts, where newer engineers observe an experienced peer before carrying the pager solo, build cross-functional knowledge of the pipelines and pair well with moderate alert volumes, particularly for teams still building out their runbook library.

Whichever model a team chooses, the rotation only stays sustainable if on-call duty doesn't eat an engineer's whole job. When pager load consistently runs past what that split allows, the right fix is auditing the alerting stack, not stretching the rotation schedule further or adding more people to absorb the same volume of noise.

A rotation also needs a real handoff, not an informal "anything to flag?" message in a chat channel. A 30-minute weekly transition meeting, where the outgoing and incoming engineers walk through active incidents, any alerts currently silenced, and changes on the horizon that carry risk, is the structure to adopt. The incoming engineer repeats the summary back before signing off, and that summary gets posted to a shared channel, so the context driving a decision never lives only in one person's memory.

Escalation needs the same precision. Ambiguity in exactly when escalation happens is a direct cause of inflated time-to-resolution, because engineers lose minutes deciding whether a situation justifies calling for help instead of actually getting help.

None of this is a logistics exercise dressed up as policy. It encodes what a team actually values: fairness in who carries the load, safety for the person carrying the pager, and a rotation sustainable enough to still exist in a year. An engineer woken at 3 a.m. with no runbook to follow is being set up to fail at a task that documentation could have made routine.

What belongs in a data runbook

It's the decision tree an engineer follows at 3 a.m. with a pipeline down and a dashboard full of urgent alerts, and its absence predicts long, stressful incidents more reliably than almost any other single factor in the program.

Five fields belong in every data runbook. Symptom describes what the alert is actually reporting. Owner names the team or individual accountable both for fixing the underlying issue and for updating the runbook once the incident closes.

The content of those fields looks different for data incidents than it does for a typical web-service runbook. An engineer filling out either entry during an actual incident should be able to work through those questions in sequence and land on a mitigation step within minutes, not reconstruct the pipeline's architecture from memory while people wait for an answer.

Runbooks need to be linked directly from the alert that triggers them. An engineer who has to go searching for the right document in the middle of an incident has already lost time that shows up directly in a longer resolution window. That link is also what makes the earlier alert hygiene rule enforceable: an alert with no runbook shouldn't be allowed to fire.

Rolling out the program in sequence: a phased approach from instrumentation to first postmortem

Teams that try to build all four SLIs, negotiate every SLO, write a full runbook library, and launch a rotation all at once tend to produce something fragile that collapses the first time a real incident tests it. Some instrumentation usually already exists; the sequence below still applies, just entered at whichever phase matches where the team actually is.

Phase one is instrumentation. Identify the tables that carry the most downstream consumers or the most business weight, and build freshness, completeness, volume, and quality checks for those tables before anything else. Depth on the assets that matter most comes before breadth across everything the team owns.

Phase two is SLO negotiation. Bring the instrumentation data to the teams that actually depend on it, BI, the ML platform, product, and negotiate real targets rather than assuming what "good enough" freshness or completeness looks like. This conversation surfaces disagreements about acceptable lateness before an incident forces the same disagreement into a blame-laden postmortem, and it gives the entire on-call program its authority to act.

Phase three is burn-rate alerting. Replace binary threshold alerts with multi-window burn-rate alerts calibrated against the SLOs negotiated in phase two, and prune the existing alert stack hard before adding anything new, using something like a 90-day actionability test to decide what survives: if an alert hasn't led to action in that window, it probably shouldn't exist.

Phase four is launching the rotation and running the first postmortems. Stand up the schedule only once runbooks are already linked to every alert that's live, because a rotation with no runbooks behind it just transfers the chaos of an ungoverned pipeline onto an on-call engineer's shoulders. The first postmortem should happen within days of the first resolved incident, even if that incident is minor, because establishing the habit while the stakes are low is far easier than introducing it for the first time during a severe outage.

Blameless postmortems and reliability investment

A blameless postmortem run within a short window after each SLO breach is the mechanism that compounds an on-call program into an actual reliability roadmap. Without it, the team gets good at resolving incidents and never gets better at preventing the next one; the same failure shows up again in three months wearing a different table's name.

Blameless framing isn't a nicety layered on top of the technical work. Google's SRE Workbook treats psychological safety as a structural requirement for an on-call program to function at all, because engineers who expect to be blamed for an incident withhold information during the review of it, and that withheld information is usually what the team needs to find the real contributing factors.

Data incidents raise a few questions a web-service postmortem wouldn't think to ask. A human complaint catching an incident before monitoring does points to a detection gap more serious than the incident itself, since it means the alerting stack has a blind spot the team didn't know about.

Action items from these reviews feed two concrete places: the SLI backlog, where new checks get queued for instrumentation, and the runbook library, where new entries get written or old ones get corrected. That's the actual mechanism by which the program compounds instead of just responding to the same failure on repeat. When the same axis, completeness on an ingestion pipeline, say, recurs across multiple postmortems within a quarter, that recurrence marks a reliability roadmap item in its own right, justifying real engineering investment rather than another round of firefighting.

Sources

  1. Google SRE: What it Means Being On-Call?

More in DataOps Practices