← All posts

Beyond the Buzzwords: What ACID and BASE Really Tell Us About System Design

July 21, 2025

ACID vs BASE: Beyond the Database Buzzwords

ACID and BASE are two acronyms that offer a convenient but somewhat reductionist categorization of systems (e.g., databases) and their guarantees. They reflect broader design philosophies governing how systems handle consistency, availability, and reliability.

Why would I write about such a seemingly simple topic? The problem I want to tackle here is the common superficial usage of these terms, which stems from a lack of understanding of distributed systems fundamentals. Instead of using these as buzzwords, I invite you to join me in analyzing the underlying ideas, patterns, and problems that underpin this dichotomy.

If these questions make you scratch your head, let’s dive into the topic!

What Are ACID and BASE?

ACID is fundamentally about transactions in the database. It was coined in 1983 in an effort to define the terminology for fault-tolerance mechanisms. It stands for:

Systems that do not meet these criteria are referred to as BASE: Basically Available, Soft state, and Eventual consistency.

BASE systems may relax any ACID property:

Breaking the ACID = RDBMS Myth

Here’s where many get it wrong: ACID is not exclusive to relational databases, and RDBMSs aren’t always strictly ACID.

NoSQL Can Be ACID Too

Several modern NoSQL databases provide ACID guarantees:

When RDBMS Goes BASE

Traditional relational databases can exhibit BASE properties when configured for scale:

Why BASE Emerged: The Scalability Wall

ACID sounds like a great deal, so why did the industry care to coin the new term BASE? The answer is that as data volume and velocity grow, single-node RDBs start to experience performance problems and at some point fail to cope with the load:

That’s the point where engineers will have to consider database alternatives to traditional RDBs that support horizontal scalability, which often go under the umbrella of BASE.

BASE: A Pragmatic Philosophy

BASE is not a strict standard; some argue it’s more of a marketing buzzword. As Martin Kleppmann half-jokingly claimed, the best definition of BASE is that it’s not ACID. BASE emerged around 2008 as a catchy counterpoint to ACID, primarily from the experiences of companies like Amazon and eBay who were hitting the limits of traditional relational databases.

What BASE really describes is this: when you have a system distributed across multiple machines (perhaps across datacenters), the CAP theorem tells us you cannot have both perfect availability and perfect consistency during network partitions. So these systems choose availability — they’d rather give you a slightly stale answer than no answer at all.

The real insight is that many applications don’t actually need strict consistency. Your Twitter timeline being 2 seconds out of date? Fine. Your shopping cart having slight inconsistencies that resolve in 100ms? Usually acceptable. Your bank balance? Perhaps we want stronger guarantees there.

So BASE isn’t really a consistency model — it’s more of a design philosophy that says: “Let’s be pragmatic about consistency requirements and optimize for availability and partition tolerance instead.”

The Distributed Consistency Spectrum: It’s Not Binary

When database folks say ‘consistency,’ they might mean two different things. ACID’s ‘C’ is about maintaining invariants — your account balance never goes negative. Distributed consistency is about when changes propagate across nodes — that’s what we consider here.

Rather than viewing ACID and BASE representing two opposites: strong consistency and eventual consistency, we need to admit that this notion is more like a spectrum rather then a binary category.

1. Distributed Consistency Models

Strong Consistency ← → Eventual Consistency

Modern distributed databases increasingly offer tunable consistency — letting you choose consistency levels per operation. Amazon DynamoDB lets you request strongly consistent reads when needed. This flexibility represents the future: not ACID vs BASE, but ACID when you need it, BASE when you don’t. Or Google Spanner — it provides global consistency with reasonable performance.

Choosing Your Consistency Model

The choice between ACID and BASE depends on the use case:

Choose stronger consistency when:

Choose weaker consistency when:

Conclusion

The key takeaway? ACID and BASE aren’t about database types — they’re about trade-offs. Understanding these trade-offs, rather than treating them as buzzwords, is what enables us to build systems that balance consistency, availability, and scalability for our specific needs.