PACELC
A lot of people have heard of the CAP theorem, which discusses the tradeoff between Consistency-Availability-Partitioning. But the lesser known PACELC is an extension. Partitioning is a broad subject, and what happens if there is or is not a partition (E - exists)? If a partition exists, then the db is faced with a similar dilemma tradeoff latency or tradeoff consistency.
Dynamo - Focuses on availability over consistency. And on partitions it makes a similar decision to focus on latency over consistency. Cassandra - Is pretty much identical to Dynamo in its tradeoffs. Mongo/Document - Is similar to Dynamo in that it trades off consistency for availability. But on partitions, it focuses on consistency over latency. Elastic - (not in research) I think it behaves similar to Mongo, in that, it initially trades off consistency for availability. But on partitions, it focuses on consistency over latency. Postgres - Being relational it is a bit different. It trades off availability for consistency. And on partitions, it continues to focus on consistency over latency. This is why relational databases (even sharded) are much more consistent, but commonly slower.
It is interesting to compare various databases and see where they fall in the CAP/PIE tradeoffs, but also in the PACELC tradeoff. Some dbs also introduce knobs (such as DDB strongly consistent read) which allow tuning of a given tradeoff.
https://en.wikipedia.org/wiki/CAP_theorem https://en.wikipedia.org/wiki/PACELC_theorem