DynamoDB

·     AWS proprietary technology, managed NoSQL database

·     Serverless, provisioned capacity, auto scaling, on demand (Nov 2018)

·     Can replace ElastiCache as a key/value store (storing session data for example)

·     Highly Available, Multi AZ by default, Read and Writes are decoupled, DAX for read Cache

·     Reads can be eventually consistent or strongly consistent

·     Security, authentication and authorization is done through IAM

·     DynamoDB Streams to integrate with AWS Lambda

·     Backup / Restore feature, Global table feature

·     Monitoring through CloudWatch

·     Can only query on primary key,  sort key or indexes

 

DynamoDB: schema less

DynamoDB: Auto Scaling service to dynamically adjust provisioned throughput capacity on your behalf

DAX feature is primarily used for read performance improvement of your DynamoDB table from milliseconds response time to microseconds

can store session data

supports both document and key-value store models

DynamoDB rcu

Partition keys: recommendations

o  use high cardinality attributes - distinct values for each item (phone number, email ID etc)

o  use composite attributes -

o  Cache the  popular items when there is a high volume of read traffic

o  Add predestined range of random numbers/digits for write heavy use cases

 

 

USE CASES

·     Serverless applications deployment (small documents 100s kb), distributed serverless cache, doesn't have SQL Query Language available, has transactions capability (from Nov 2018)

 

·      Operations: no operations needed, auto scaling capability, serverless

·      Security: Full security through IAM policies, KMS encryption, SSL in flight

·      Reliability: Multi AZ, Backups

·      Performance: Single digit millisecond performance, DAX for caching reads, performance doesn`t  degrade if your application scales

·      Cost: Pay per provisioned capacity for storage usage (no need to guess in advance any capacity - can use auto scale)