Skip to content

Why Can't You Just Add Another Database?

Reading data and writing data are two very different scaling problems. Why most large-scale systems separate read replicas from a single write primary instead of just adding another database.

By 2 min read
  • Architecture Breakdown
  • Database Architecture
  • Read Replicas
  • Scalability
  • Software Architecture

(Read Replicas Explained)

One question comes up in almost every growing system. "If the database is slow... why don't we just add another one?"

It sounds reasonable. Until you realize that reading data and writing data are two very different problems.

Imagine an e-commerce application. Every second... Thousands of users are:

  • Browsing products
  • Searching categories
  • Reading reviews
  • Viewing order history

Only a small percentage are actually placing orders. That's an important observation.

Most systems perform far more reads than writes.

If every read and every write hits the same database, that database eventually becomes the bottleneck.

Why Can't You Just Add Another Database?

So instead of making one database do everything... Large-scale systems often separate responsibilities.

πŸ“– Reads can be distributed across multiple read replicas. ✍️ Writes continue to a single primary database to maintain consistency.

The result?

More users can browse the application without slowing down critical write operations.

One lesson that's changed how I think about architecture: Not all traffic deserves the same path.

Read-heavy traffic and write-heavy traffic have different scaling challenges. Treating them the same is often what creates the bottleneck.

The next time someone says, "Let's just add another database..." The better question might be: "Are we trying to scale reads... or writes?" Because the answer determines the architecture.

Have you worked on a system where reads heavily outnumbered writes? How did your team handle it?

Keep reading