← Back to list

Data Engineering’s 10 Silent Killers

In data engineering, the scariest problems are rarely caused by frameworks or languages.

Think Data · 2026-05-24 15:55 · 2 claps · 3.2 min read paywalled
#data-engineering #data-engineer-skills #data-pipeline #distributed-systems #big-data
Open on Medium ↗
Wiki topics: 🔧 · Data Engineering

Data Engineering’s 10 Silent Killers

In data engineering, the scariest problems are rarely caused by frameworks or languages.

They’re caused by everyday words that sound harmless in design docs… but behave very differently in production.

**Read here for free**

After working on recommendation systems, streaming pipelines, campaign platforms, and analytics stacks, I’ve realized something simple:

Most production incidents can be traced back to one of a few “trigger words” nobody worried enough about during design.

Here are the top 10 I’ve learned to respect the hard way.

Data Engineering’s silent killers

Data Engineering’s silent killers

1. Backfill

On paper, it sounds routine: We’ll just backfill last month’s data.

In reality, it often means:

  • rerunning huge historical datasets
  • recomputing aggregations
  • handling schema changes that happened mid-way
  • fixing previously “final” outputs

It is scary because Backfills expose every assumption your pipeline ever made. If idempotency wasn’t designed properly, a simple backfill becomes a data corruption event.

2. Duplicate

One of the most deceptively dangerous problems.

Duplicates come from:

  • retries
  • Kafka reprocessing
  • API retries
  • Airflow reruns
  • CDC replay
  • network failures

Everything looks successful, but metrics silently inflate. This is especially painful in:

  • revenue systems
  • recommendation features
  • campaign attribution

Nothing breaks visibly… until business decisions start going wrong.

3. Schema Change

Schemas never stay stable in real systems.

Common changes:

  • column rename
  • type change (string → int)
  • nested JSON restructuring
  • new optional fields
  • removed fields

This is a silent killer because It often breaks downstream systems silently, not immediately. Dashboards drift. Models degrade. Joins behave differently. By the time you notice, the damage is already historical.

4. Latency Spike

This shows up often in streaming systems.

Symptoms:

  • delayed dashboards
  • Kafka lag increasing
  • Spark streaming backlog growing
  • stale features in ML systems

Why it’s scary? Latency spikes are usually symptoms of deeper system imbalance.

Common root causes:

  • data skew
  • partition bottlenecks
  • sudden traffic bursts
  • state store overload

In real-time systems, latency is not just performance — it’s correctness.

5. Discrepancy

This is the word that usually starts full-blown debugging sessions.

Examples:

  • Revenue doesn’t match between systems
  • DAU is different in two dashboards
  • Why do these numbers not align?

It means you don’t know where the truth broke.

Now you’re checking:

  • upstream ingestion
  • transformations
  • joins
  • filters
  • metric definitions
  • time windows

It’s rarely one issue. It’s usually a chain of small mismatches.

6. Idempotency

This one is subtle but critical. Idempotency means running the same job multiple times does not change the result.

Why it matters:

  • retries happen
  • jobs fail and restart
  • backfills rerun data
  • pipelines get replayed

This is scary because if idempotency is missing, every retry quietly corrupts your data. Instead of failing loudly, systems degrade silently.

7. Late Data

Real-world data is rarely on time.

Causes:

  • mobile offline sync
  • event queue delays
  • retry mechanisms
  • distributed ingestion lag

Late data breaks assumptions in time-based systems.

Impacts:

  • sessionization
  • hourly metrics
  • attribution logic
  • real-time dashboards

Without handling it properly, numbers shift after they were already “finalized.”

8. Skew

A classic distributed systems issue.

Example:

  • one user generates 30% of traffic
  • one campaign dominates ingestion
  • one partition becomes “hot”

One bad key can slow down or crash an entire job.

Symptoms:

  • single Spark task stuck
  • uneven executor utilization
  • long tail job delays

Skew turns parallel systems into serial bottlenecks.

9. Replay

Replay sounds like a good thing: We can just replay the data.

Until you realize:

  • ordering may change
  • duplicates may appear
  • downstream systems may not be idempotent
  • state may be inconsistent

Replay exposes whether your system is truly deterministic. If not designed carefully, replay turns into duplication + inconsistency.

10. Ownership

This is the most underestimated one. When ownership is unclear:

  • multiple pipelines compute the same metric
  • definitions drift across teams
  • dashboards conflict
  • nobody trusts the data

Even perfect pipelines fail if nobody owns the meaning of the data.

Without ownership:

  • schema changes are uncontrolled
  • metric definitions diverge
  • debugging becomes political, not technical

Final Thought

Data engineering failures rarely come from “hard problems.” They come from familiar words used too casually:

  • backfill
  • duplicate
  • schema change
  • latency
  • discrepancy
  • idempotency
  • late data
  • skew
  • replay
  • ownership

Individually, they sound manageable. Together, they define the real complexity of production data systems.

Because in real-world pipelines, correctness is not about writing SQL or Spark jobs. It’s about surviving everything that happens after you deploy them.

If you’re building data platforms, exploring analytics, or just love thinking about how data actually tells a story, feel free to follow or leave a clap 👏. It’s a small signal, but it helps me keep writing honest, example-driven content about data modelling, fact tables, dimensions, and the patterns that make analytics work.

Thanks for reading and for keeping curiosity alive ❤️.

Visit my site:

**Data Engineering Roadmap — Guru, Eerla | Data Engineering**

**Data Engineering Skills Guide — Guru, Eerla | Data Engineering**


메타데이터
post_id
d421065d9405
slug
data-engineerings-10-silent-killers-d421065d9405
url
https://medium.com/@think-data/data-engineerings-10-silent-killers-d421065d9405
canonical_url
https://medium.com/@think-data/data-engineerings-10-silent-killers-d421065d9405
author_url
https://medium.com/@think-data
status
ok
fetched_at
2026-06-09 15:37:30