luvv to helpDiscover the Best Free Online Tools
Topic 8 of 8

Incident Runbooks

Learn Incident Runbooks for free with explanations, exercises, and a quick test (for Data Engineer).

Published: January 8, 2026 | Updated: January 8, 2026

Who this is for

  • Data engineers operating Airflow, dbt, Kafka, or similar schedulers and pipelines.
  • On-call responders who need clear, repeatable steps during incidents.
  • Team leads improving reliability and reducing mean time to recovery (MTTR).

Prerequisites

  • Basic understanding of your orchestration tool (e.g., Airflow DAGs, schedules, SLAs, retries).
  • Familiarity with your data stores, upstream sources, and typical failure modes.
  • Access to logs/metrics and alerting channels used by your team.

Why this matters

How to author and maintain runbooks

  1. Pick one incident pattern (e.g., "Airflow task retries exhausted").
  2. Draft the sections above; keep it short (1–2 pages max).
  3. Add exact commands and parameters for your platform (safe defaults).
  4. Define severity mapping and clear escalation criteria.
  5. Add owners and review cadence (e.g., quarterly).
  6. Test it in a dry run or game day; fix gaps you discover.
  7. Record last updated date inside the runbook.

Operational checklists

Shift-start quick checks
  • Alerts quiet or understood (no flapping).
  • Schedulers healthy; no stuck tasks in queued state.
  • Key SLAs: green or known exceptions documented.
  • Runbooks accessible; contact list up to date.
Pre-release safety checks
  • Backfill plan written with rollback steps.
  • Idempotency confirmed for inserts/merges.
  • Validation queries prepared (row counts, sums, uniqueness).

Exercises

Do these to make the skill stick. Use the solutions only after attempting.

Exercise 1 — Draft a Minimal Runbook for a Failing Airflow Task

Scenario: DAG orders_daily fails at task load_to_warehouse. Retries exhausted. You must stabilize, restore, and communicate.

Write a one-page runbook that includes:

  • Trigger & impact
  • Severity mapping & escalation rules
  • Diagnosis steps (top 3 checks)
  • Mitigations (safe actions)
  • Rollback & backfill steps (with parameters)
  • Validation queries
  • Communication template
  • Owners & last updated

Template to fill:

Runbook: Airflow task failure (orders_daily.load_to_warehouse)
Trigger:
Impact:
Severity:
Escalate when:
Diagnosis:
Mitigations:
Rollback & Backfill:
Validation:
Communication:
Owners:
Last updated:
Show solution
Runbook: Airflow task failure (orders_daily.load_to_warehouse)
Trigger: Alert when task fails with retries_exhausted.
Impact: Daily orders table delayed; dashboards stale for finance and ops.
Severity: P2 by default; P1 if >= 2h delay after 06:00 UTC or quarter-end.
Escalate when: Delay > 2h OR data quality risk (partial load) detected.
Diagnosis:
  1) Airflow UI: confirm last failure, check upstream task status.
  2) Task logs: look for HTTP 5xx, auth errors, or warehouse load errors.
  3) Source arrival: confirm upstream file/object exists for execution date.
Mitigations:
  - If upstream late: short-circuit non-critical downstream tasks; pause dependent DAGs.
  - If transient 5xx: trigger rerun of this task only; limit concurrency to 1.
  - If auth/secret: rotate secret per ops note; rerun the single task.
Rollback & Backfill:
  - If partial load suspected: run cleanup SQL to remove rows for ds={{ ds }}.
  - Backfill only ds={{ ds }} using Airflow backfill for the task; do NOT backfill entire week.
  - Loads are idempotent via MERGE on (order_id, ds).
Validation:
  - Row count within last 7-day min/max.
  - Sum(order_amount) within ±3% of forecast.
  - No duplicates by (order_id, ds).
Communication:
  - Initial: "orders_daily delayed since 05:15 UTC due to task failure. Impact: finance dashboards stale. Mitigation in progress; next update 30 min; ETA 06:45 UTC."
  - Resolution: "Pipeline restored at 06:40 UTC; backfill complete for 2024-08-10; validation passed; dashboards refreshing."
Owners: Primary: Data Eng On-call; Secondary: Platform On-call.
Last updated: 2026-01-08
Exercise 2 — Build a Triage Decision Tree for Late Data Arrival

Scenario: A daily upstream file is late. Decide when to wait, when to page upstream, and how to backfill safely.

Create a decision tree as bullet "if/then" rules that covers:

  • Time thresholds vs SLA
  • Quick checks (upstream status, recent changes)
  • Actions (pause, short-circuit, notify, backfill)
  • Owner for each action

You may present it as bullets or ASCII tree.

Show solution
If now - expected_arrival < 30 min: 
  Then wait and post "monitoring" update. Owner: On-call.
Else if upstream status = incident:
  Then pause dependent DAGs; notify stakeholders; ask for ETA. Owner: On-call.
Else if last 7 days show >= 2 late arrivals:
  Then raise P2; page upstream owner; plan backfill window. Owner: On-call.
Else:
  Check storage for partial files:
    If partial found:
      Then prevent load (short-circuit); set guard to reject partial; request re-drop. Owner: On-call.
    Else:
      Keep polling every 15 min; post updates hourly. Owner: On-call.
After arrival:
  Backfill ds={{ ds }} only; validate row count and checksums; resume DAGs. Owner: On-call.

Self-check checklist (tick mentally):

  • Triggers, impact, and severity are clearly defined.
  • Three fast diagnosis checks are listed and ordered.
  • Mitigations avoid corrupting data and limit blast radius.
  • Rollback/backfill steps are idempotent and scoped.
  • Validation queries prove correctness before reopening flows.
  • Escalation criteria and contacts are explicit.
  • Communication templates include impact, ETA, and cadence.

Common mistakes and how to self-check

  • Vague steps: Replace "check logs" with exact log paths/queries and what to look for.
  • Over-broad backfills: Always scope to partition/date and rely on idempotent merges.
  • No validation: Add row-count bounds and a business metric check.
  • Missing escalation: Define time- or impact-based triggers (e.g., delay > 2h or financial impact).
  • Stale owners: Add owner names and a review cadence (e.g., quarterly).
  • Silence during incidents: Include an update cadence (e.g., every 30 minutes).

Practical projects

  • Convert three recent incidents into runbooks. Aim for 1 page each with clear rollback/backfill and validation.
  • Run a 60-minute game day: simulate a missing upstream file; execute the runbook; capture gaps and fix them.
  • Create a lightweight "runbook linter" checklist your team uses in PR reviews before enabling new schedules.

Learning path

  1. Scheduling basics (DAGs, retries, SLAs)
  2. Alerting and on-call readiness
  3. Incident runbooks (this lesson)
  4. Backfills and data recovery patterns
  5. Postmortems, SLOs, and continuous improvement

Next steps

  • Pick your most frequent failure mode and write the first runbook today.
  • Schedule a 30-minute dry run with a teammate and refine the steps.
  • Add owners and set a quarterly review reminder.

Mini challenge

Compress your runbook into a single-page "grab-and-go" version that a new on-caller can follow in under 5 minutes. Keep only what is essential.

Quick Test and progress note

Take the quick test below to check understanding. Everyone can take it for free; only logged-in users will have their progress saved.

Practice Exercises

2 exercises to complete

Instructions

Scenario: DAG orders_daily fails at task load_to_warehouse. Retries exhausted. You must stabilize, restore, and communicate.

Write a one-page runbook that includes these sections:

  • Trigger & impact
  • Severity mapping & escalation rules
  • Diagnosis steps (top 3 checks)
  • Mitigations (safe actions)
  • Rollback & backfill steps (with parameters)
  • Validation queries
  • Communication template
  • Owners & last updated

Template to fill:

Runbook: Airflow task failure (orders_daily.load_to_warehouse)
Trigger:
Impact:
Severity:
Escalate when:
Diagnosis:
Mitigations:
Rollback & Backfill:
Validation:
Communication:
Owners:
Last updated:
Expected Output
A clear 1-page runbook covering trigger, impact, severity, diagnosis, mitigations, rollback/backfill, validation, communication, owners, and last updated.

Incident Runbooks — Quick Test

Test your knowledge with 8 questions. Pass with 70% or higher.

8 questions70% to pass

Have questions about Incident Runbooks?

AI Assistant

Ask questions about this tool