AW Dev Rethought

✂️ Perfection is achieved not when there is nothing more to add, but when there is nothing left to take away - Antoine de Saint-Exupéry

Data Realities: Data Systems Break at Boundaries, Not at Scale


Everyone worries about scale. They shouldn’t. Scale is a solved problem. Boundaries are where data systems actually fall apart.

The belief is understandable. You build a system, it handles a thousand records, then ten thousand, then a million — and somewhere in that growth, something breaks. So the instinct is to point at volume and say: that’s the problem. Buy more compute. Shard the database. Add a caching layer. Scale horizontally.

But look closely at where production incidents actually happen. Look at what causes silent data corruption, inconsistent reads, pipelines that process the same record twice, or dashboards that show different numbers depending on which system you query. Almost none of it is raw scale. Almost all of it is boundary crossings.


What a boundary actually means

A boundary is any point where data moves between two systems that don’t share the same assumptions.

That could be a micro-service calling another micro-service. A Kafka topic consumed by two different teams. An ETL pipeline pulling from a PostgreSQL transactional database and writing to a Snowflake data warehouse. An API response mapped into a local data model. A JSON payload arriving from an external partner.

At every one of those crossings, something can go wrong — and it rarely announces itself loudly. The schema doesn’t match quite right. Timezone handling differs between the source and the target. One system counts records from zero, the other from one. A null on one side becomes an empty string on the other. A date field that was always a string in the source gets inferred as a timestamp in the destination.

These aren’t edge cases. They are the normal conditions of any data system that involves more than one team or more than one technology.


Why scale gets the blame

Scale makes problems visible. A boundary mismatch that affects one record in a thousand goes unnoticed. When that same pipeline processes ten million records a day, the mismatch affects ten thousand records — and now someone raises a ticket.

The instinct is to read causality backwards. Volume went up, errors went up — therefore volume caused the errors. But the boundary issue was always there. Scale just turned it into something that could no longer be ignored.

This matters because it changes what you should fix. Scaling the pipeline more won’t help. Sharding the database won’t help. The fix is at the boundary — validation, schema enforcement, contract testing, explicit handling of the edge cases that were always lurking.


The boundaries most teams underinvest in

Service-to-service contracts. Two services owned by two teams, both evolving independently. There is usually no formal contract — just an informal understanding of what the API response looks like. When one team changes their schema, the other team finds out in production.

The operational-to-analytical boundary. Data flows from a transactional system like MySQL or Postgres into an analytical store like BigQuery or Redshift. The operational schema is optimised for writes. The analytical schema is optimised for reads. The transformation between them is where assumptions break — data types, NULL semantics, encoding, precision.

External data ingestion. Every time you consume data from a third party — a partner feed, a public API, a vendor export — you are trusting that their schema stays stable, their encoding is consistent, and their values mean what you think they mean. They usually don’t. And when their format changes, your system finds out by failing.

The event stream boundary. Events in Kafka or Kinesis are consumed by multiple downstream services. If those services evolve at different speeds, or if the event schema changes without a versioning strategy, consumers break. The boundary between producer and consumer is one of the most common sources of silent data drift in modern architectures.


What good boundary management looks like

The teams that handle this well treat every boundary as a first-class concern, not an afterthought.

They define schemas explicitly — using tools like Avro, Protobuf, or JSON Schema — and enforce them at the boundary, not downstream. They version their API contracts and use contract testing to catch mismatches before deployment. They validate data at ingestion rather than at query time, so problems surface close to the source instead of buried in a report three days later.

They also treat boundary failures as expected conditions, not exceptions. Data arrives late. Fields are missing. Values are out of range. Good systems handle these cases gracefully and log them with enough context to investigate. Bad systems either crash or silently swallow the bad data.


The real lesson

If your data system is behaving unexpectedly, resist the instinct to immediately think about capacity. Walk the data through every boundary it crosses before it reaches its destination.

Where does it change format? Where does it change ownership? Where does one team’s assumption meet another team’s assumption? That intersection is almost always where the problem lives.

Scale gives you the same data system, running faster. Better boundary design gives you a data system that actually works.

The engineers who understand this don’t just build systems that handle load. They build systems that stay correct — across teams, across services, across the messy reality of how data actually moves in production.


That’s the distinction worth holding onto. Your data doesn’t break because it grows. It breaks because somewhere along its journey, two systems stopped agreeing on what it meant.


ETL & Data Pipelines Overview Free PDF on this topic ETL & Data Pipelines Overview Move. Transform. Deliver — Your ETL & Data Pipelines Blueprint. Download free Downloaded 274 times

If this article helped you, you can support my work on AW Dev Rethought.


Rethought Relay:
Link copied!

Enjoyed this post?

Stay in the loop

New posts + weekly digest, straight to your inbox.

or

Create a free account

  • Save posts to your vault
  • Like posts & build history
  • New-post alerts

Comments

Add Your Comment

Comment Added!