Overview
BASE is the counterpart to acid for distributed systems: Basically Available (answer even during a network partition, possibly with stale or partial data), Soft state (values change as updates propagate asynchronously), and Eventually consistent (replicas converge once writes stop; see eventual-consistency). Expect BASE behavior whenever a read hits a replica, cache, or NoSQL store, and design the UI to tolerate brief staleness.
Rules
- Accept BASE for carts, view counters, feeds, and search indexes. Reject it for balances, inventory, and any read-then-decide path where a stale value causes a wrong action.
- CAP is not “pick two of three”. Partitions happen, so the choice is consistency or availability during one; BASE picks availability.
- BASE is a spectrum. DynamoDB reads are eventually consistent by default with a strongly consistent option per request, and Cassandra consistency is tunable per query.
- PostgreSQL asynchronous replicas behave this way for replica reads (read-replica).
Related
- acid: the stronger model BASE trades away.
- eventual-consistency: the convergence guarantee in BASE.
- read-replica: a Postgres source of BASE-like reads.
- materialized-view: stale reads by design.
- postgres: replication and consistency trade-offs.