DynamoDB is a highly available AWS service that spreads across multiple AZ with replication. It is not a relational database like RDS but a distributed database. It has a low latency and is well suited for IAM and other AWS specific security offerings. DynamoDB has a max size of 400 KB per item and an infinite amount of rows allowed, each attribute has a primary key it is associated with. Your options in terms of capacity modes are provisioned and on-demand. With provisioned you pay for what you want to use ahead of time, an overall cheaper option but it does not scale well if your workload is unpredictable. You purchase read capacity units and write capacity units, there is the possibility to set up auto-scaling with those through DynamoDB. With on-demand you simply pay for what for what you actively use and this will scale up and down with your work load. This can get expensive if your capacity does get too high though. There are multiple advance features in DynamoDB as well. One of these features is DAX, DynamoDB Accelerator, this is Dynamo’s cache service that allows you to have clients connect through your DAX cluster and when a request is made that data is cached for when it is requested again. The TTL is 5 minutes by default. ElastiCache can be used as well but it is better for caching entire aggregation results, while DAX is better for individual objects. They both compliment each other. With DynamoDB you also have stream processing. This allows you to utilize table level modifications, create, update, delete. With this you can invoke lambda functions with this data and perform analytics. If you have users in multiple regions you can utilize Global tables, these tables use active-active replication and each region would have their own table, when one is updated the other is updated. This will decrease the latency as users can simply access the database in their respective region, DynamoDB streams must be enabled in order to utilize Global tables as that is what will allow the replication to occur. You can utilize TTL with DynamoDB itself as well, have a set amount of time and when that time is met the entry is deleted. DynamoDB can utilize point in time recovery within the last 35 days, when you restore a new table is created and you can restore to any point within the last 35 days. You can utilize on-demand backups as well those are created at a specific or scheduled time and you can revert to any point in time where a backup was created, a new table is created when you restore to backup. You can export your DynamoDB tables to S3 if PITR, Point in Time Recovery, is enabled. This may be a good idea if you wish to have a backup of your table saved to S3 before the 35 day period is exceeded. You can import data from S3 into DynamoDB as well, like if you wanted to take a table you previously exports before the 35 day period was up and wanted to bring it back in. When exporting and importing between DynamoDB and S3 read and write capacity are not consumed.