Notes

  • Good insight into how the evolution worked from Dynamo to DynamoDB.

  • Having a fixed unwavering goal of providing a managed service with fast and predictable performance at any scale is great.

System properties

  • DynamoDB is a fully managed cloud service.
  • DynamoDB employs a multi-tenant architecture
  • DynamoDB achieves boundless scale for tables
  • DynamoDB provides predictable performance.
  • DynamoDB is highly available
  • DynamoDB supports flexible use cases

Lessons learnt from the evolution

  • Adapting to customers’ traffic patterns to reshape the physical partitioning scheme of the database tables improves customer experience.
  • Performing continuous verification of data-at-rest is a reliable way to protect against both hardware failures and software bugs in order to meet high durability goals.
  • Maintaining high availability as a system evolves requires careful operational discipline and tooling. Mechanisms such as formal proofs of complex algorithms, game days (chaos and load tests), upgrade/downgrade tests, and deployment safety provides the freedom to safely adjust and experiment with the code without the fear of compromising correctness.
  • Designing systems for predictability over absolute efficiency improves system stability. While components such as caches can improve performance, do not allow them to hide the work that would be performed in their absence, ensuring that the system is always provisioned to handle the unexpected.