BASE Properties Explained: Basically Available, Soft State, Eventually Consistent
Learn BASE properties for distributed databases — how they differ from ACID, why NoSQL systems adopt them, and when eventual consistency is the right choice.
BASE Properties
BASE stands for Basically Available, Soft state, Eventually consistent — a set of properties that describe distributed database systems designed to prioritize availability and partition tolerance over immediate consistency.
What It Really Means
BASE emerged as a counterpoint to ACID. While ACID prioritizes correctness by ensuring every transaction leaves the database in a perfectly consistent state, BASE accepts that in large-scale distributed systems, strict consistency is often too expensive. Instead, BASE systems guarantee that the system remains operational and that all replicas will converge to the same state given enough time.
The term was coined by Dan Pritchett of eBay in a 2008 paper, deliberately as a chemistry pun opposing ACID. The three properties describe a philosophy more than a specification:
-
Basically Available: The system guarantees availability as defined by the CAP theorem. Every request receives a response — though the response might not contain the most recent data. The system does not refuse requests because a subset of nodes is unreachable.
-
Soft State: The state of the system may change over time even without new input. Replicas are being updated asynchronously, so the data you read from one node might differ from another. The system is in flux between updates.
-
Eventually Consistent: If no new updates are made, all replicas will eventually converge to the same value. The window of inconsistency is bounded but not zero. In practice, convergence usually happens within milliseconds to seconds, though under heavy load or network issues it can take longer.
The key insight is that for many applications, eventual consistency is perfectly acceptable. When you post a tweet, it does not matter if a user in another continent sees it 2 seconds later instead of instantly. What matters is that the system never goes down and the tweet eventually appears everywhere.
How It Works in Practice
Amazon DynamoDB: A BASE System in Action
DynamoDB is designed around BASE principles. When you write an item, DynamoDB acknowledges the write once it is persisted to a quorum of storage nodes in one availability zone. The write then asynchronously replicates to other nodes and zones.
- A strongly consistent read waits for all replicas to agree — this is opting into ACID-like behavior at higher latency and cost.
- An eventually consistent read (the default) returns data from any replica, which may be slightly stale. This is the BASE path — faster and cheaper, but you might read a value from before the most recent write.
Apache Cassandra: Tunable Consistency
Cassandra lets you tune consistency per query. With a replication factor of 3:
CONSISTENCY ONE: Write or read from just 1 replica. Maximum availability, weakest consistency — pure BASE behavior.CONSISTENCY QUORUM: Write or read from 2 of 3 replicas. Balances availability and consistency.CONSISTENCY ALL: Write or read from all 3 replicas. Strongest consistency, lowest availability — approaching ACID behavior.
This tunability means Cassandra is neither purely ACID nor purely BASE. You choose the trade-off per operation based on business requirements.
DNS: The Original BASE System
DNS is perhaps the oldest and most widely deployed eventually consistent system. When you update a DNS record, the change propagates through caches across the internet over minutes to hours (depending on TTL values). During propagation, different clients may resolve different IP addresses for the same domain. The system is basically available (DNS almost never goes completely down), maintains soft state (caches are continuously expiring and refreshing), and is eventually consistent (all caches converge once TTLs expire).
Shopping Cart Example
Amazon's original Dynamo paper (2007) used the shopping cart as a motivating example. If a user adds an item to their cart from their phone and immediately checks the cart from their laptop, the item might not appear yet. This is acceptable because: the item will appear within seconds, the user is not harmed by a brief delay, and the alternative — a system that refuses to accept cart additions when some replicas are unreachable — is far worse for the business.
Implementation
Trade-offs
When BASE Is the Right Choice
- Social media feeds, activity streams, notifications
- Shopping carts and wish lists
- Content delivery and caching systems
- IoT sensor data ingestion at massive scale
- Analytics and reporting where slight staleness is acceptable
- Any system where availability is more critical than immediate consistency
When BASE Is Dangerous
- Financial transactions — a stale balance read could allow overdrafts
- Inventory systems with limited stock — eventual consistency can cause overselling
- Medical records — stale data could lead to incorrect treatment
- Distributed locking and coordination — requires strong consistency
- Any system where reading stale data causes irreversible harm
Advantages
- Higher availability — the system serves requests even during partial failures
- Lower latency — no need to coordinate across all replicas before responding
- Better horizontal scalability — replicas can be added without increasing coordination overhead
- Simpler conflict resolution for many use cases (last-write-wins is often sufficient)
Disadvantages
- Application complexity increases — developers must handle stale reads, conflicts, and convergence
- Harder to reason about correctness — you cannot assume reads reflect the latest writes
- Conflict resolution can be complex (CRDTs, vector clocks, application-level merging)
- Debugging is harder — bugs may be intermittent and depend on replication timing
Common Misconceptions
-
"BASE means no consistency at all" — BASE guarantees eventual consistency, which is still a meaningful guarantee. All replicas will converge. The question is how long convergence takes, not whether it happens.
-
"ACID and BASE are binary choices" — Most modern databases exist on a spectrum. DynamoDB offers both eventually consistent and strongly consistent reads. Cassandra lets you tune consistency per query. CockroachDB provides ACID transactions in a distributed system. The choice is per operation, not per system.
-
"Eventually consistent means seconds or minutes of lag" — In well-configured systems, replication lag is typically 5-50 milliseconds. "Eventually" sounds vague, but in practice the convergence window is very short under normal conditions.
-
"BASE systems cannot handle transactions" — Some BASE-oriented systems support limited transaction semantics. DynamoDB supports transactions across up to 100 items. Cassandra has lightweight transactions using Paxos. The transactions are more limited than SQL but they exist.
-
"You have to choose one approach for your entire system" — Mature architectures mix ACID and BASE within the same application. Use PostgreSQL with ACID for payment processing and Cassandra with BASE for activity feeds. The architecture should match the consistency requirements of each data domain.
How This Appears in Interviews
BASE properties come up in system design and database interviews:
- "Compare ACID and BASE" — explain the trade-off spectrum, give concrete examples of when each is appropriate, and mention that modern databases often support both modes. See our interview questions on databases.
- "Design a social media feed system" — this is a classic BASE use case. Discuss eventual consistency, fan-out strategies, and why strict consistency would be overkill. See our system design interview guide.
- "How does eventual consistency work in DynamoDB?" — explain quorum reads/writes, replication factor, and the consistency spectrum between ONE and ALL.
- "What is a conflict resolution strategy for eventually consistent systems?" — discuss last-write-wins, vector clocks, CRDTs, and application-level merge functions.
Related Concepts
- ACID Properties — The traditional counterpart to BASE
- CAP Theorem — The theoretical foundation for the ACID vs BASE trade-off
- Database Partitioning — Partitioning often requires BASE semantics across partitions
- Database Indexing — Indexing behavior differs in BASE systems
- Normalization vs Denormalization — BASE systems favor denormalized data models
- System Design Interview Guide — Apply BASE reasoning in design interviews
- Algoroq Pricing — Practice distributed systems interview questions
GO DEEPER
Learn from senior engineers in our 12-week cohort
Our Advanced System Design cohort covers this and 11 other deep-dive topics with live sessions, assignments, and expert feedback.