BASE
BASE is a consistency model for distributed and NoSQL systems that relaxes the strict guarantees of ACID in exchange for higher availability and partition tolerance. The acronym is a deliberate contrast to ACID.
Basically Available
The system guarantees availability — every request receives a response (success or failure), even during partial system failures. Data is replicated across multiple nodes so the system remains operational when individual nodes go down.
Soft State
The state of the system may change over time, even without new input. Replicas may not be immediately consistent — data written to one node may not yet be propagated to all replicas.
Eventual Consistency
If no new updates are made, all replicas will eventually converge to the same state. The system does not guarantee when this will happen, but it guarantees it will happen.
sequenceDiagram participant Client participant Node_A as Node A participant Node_B as Node B participant Node_C as Node C Client->>Node_A: WRITE x = 42 Node_A-->>Client: ACK (success) Note over Node_A,Node_C: Replication in progress... Node_A->>Node_B: Replicate x = 42 Node_A->>Node_C: Replicate x = 42 Note over Node_A,Node_C: Eventually consistent
When BASE Makes Sense
| Scenario | Why BASE |
|---|---|
| Social media feeds | Slight delay in showing new posts is acceptable |
| Shopping carts | Cart state can be reconciled later |
| DNS propagation | Propagation delay is acceptable |
| Analytics / metrics | Approximate counts are fine in real-time |
| Content delivery | Stale cache is better than no response |
BASE vs ACID
| Property | ACID | BASE |
|---|---|---|
| Consistency | Strong (immediate) | Eventual |
| Availability | May sacrifice for consistency | Prioritized |
| Concurrency model | Locking / MVCC | Optimistic, conflict-free replicated data |
| Typical systems | PostgreSQL, MySQL, Oracle | Cassandra, DynamoDB, CouchDB |
| Use case | Financial transactions, inventory | High-scale web apps, IoT |
Tunable Consistency
Modern systems blur the line — many NoSQL Databases let you tune consistency per query. See CAP Theorem for the theoretical foundation behind these trade-offs.