Design Dynamo
Terms:
| Term | Definition |
|---|---|
| Strongly Consistent | This means every read sees most recent write or error. This is achieved by ensuring the data in all servers is same at any time. |
| Eventually Consistent | Data copies are not always identical. Though they eventually become consistent. This is to ensure high availability. |
Overview:
- Dynamo is a highly available, highly scalable, disributed,
and completely decentralized key-value store.
- Dynamo is an
APsystem. It provides high availability and partition tolerance at the expense ofstrong consistency. - Inconsistencies are resolved in the background, and many a times, they are not noticable by the end user.
- Data is
optimistically replicatedto becomeeventually consistent - If the app requires only primary key data and expects to be highly available, then Dynamo is a choice to consider.
Interface:
- Provides a get() and put() interface.