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