Basic Availability
System guarantees availability (maybe partial)
“The system basically works, even if some parts are failing.”
Part of the BASE acronym (Basic Availability, Soft state, Eventual consistency).
When to use
High-volume distributed systems (NoSQL) where ACID is too restrictive.
Why it matters
- Resilience: The system prefers to give “some answer” rather than “no answer”.
- Scale: Supporting millions of users requires shedding strict locking.
Signs of Violation
- Entire site goes down because the “Recommendations Service” is offline. (Should just hide recommendations).
Explanation
Problem
ACID says “All or Nothing”. BASE says “Mostly All, sometimes Partial”.
Solution
If a node is down, the data on that node is missing, but the other nodes continue serving. The response might be “incomplete”, but it’s available.
Real world analogy
A buffet. If they run out of Chicken, the buffet is still open (Basically Available). You just can’t get Chicken right now. In an ACID restaurant, if the Chicken is gone, they might close the whole restaurant until a truck arrives.
Pros and Cons
| Pros | Cons |
|---|---|
Comparison
- ACID Availability: ACID limits availability to ensure consistency. BASE sacrifices consistency for availability.
Code example
Typescript
Bad (Violation)
Good (Adherence)
PHP
Good (Adherence)