Amazon DynamoDB – Overview
Amazon DynamoDB – Overview
Amazon DynamoDB is a fully managed NoSQL database service designed for single-digit millisecond performance at any scale. It's serverless, highly available, and supports key-value and document data models.
DynamoDB – Table Example
Table: Users
| Partition Key | Sort Key | Name | |
|---|---|---|---|
UserID (PK) |
null |
John Doe | john@example.com |
Composite Key Table: Orders
| Partition Key | Sort Key | Item | Quantity |
|---|---|---|---|
UserID |
OrderDate |
Laptop | 1 |
✅ Access pattern:
Get all orders for a user:
SELECT * FROM Orders WHERE UserID = '123'
DynamoDB – Read/Write Capacity Modes
| Mode | Description |
|---|---|
| Provisioned | You manually set Read/Write Capacity Units (RCUs/WCUs). Cost-effective for predictable workloads. |
| On-Demand | Auto-scales instantly based on demand. Pay-per-request. Great for spiky/unpredictable traffic. |
🧮 1 WCU = 1 write/sec (1 KB)
🧮 1 RCU = 1 strongly consistent read/sec (4 KB)
DynamoDB Accelerator (DAX)
DAX is a fully managed, in-memory cache for DynamoDB that reduces read latency from milliseconds to microseconds.
| Feature | Description |
|---|---|
| In-memory cache | Optimizes read-heavy workloads |
| Write-through cache | Writes go to DAX and DynamoDB |
| Fully managed | No manual patching, scaling, or backup needed |
DAX vs. ElastiCache
| Feature | DAX | ElastiCache (Redis/Memcached) |
|---|---|---|
| Integrated with DynamoDB | ✅ Yes | ❌ No (you manage cache logic) |
| Write-through support | ✅ Built-in | ❌ Manual sync required |
| Use case | Read-intensive DynamoDB | Generic app-level caching |
DynamoDB Streams
- Captures item-level changes in DynamoDB tables
- Retains up to 24 hours of change data
- Used for:
- Audit logs
- Replication
- Triggering Lambda functions
Each stream record contains:
-
INSERT,MODIFY, orREMOVE - Before/after image (if enabled)
DynamoDB – Stream Processing
- Use AWS Lambda to process stream records
- Serverless ETL, real-time analytics, cross-service workflows
Example:
-
User signs up → DynamoDB stream triggers Lambda → Sends welcome email or writes to another system
DynamoDB Global Tables
- Multi-region, fully replicated DynamoDB tables
- Active-active replication (read/write in all regions)
- Helps with:
- Disaster recovery
- Global app performance
- Data sovereignty
DynamoDB – Time To Live (TTL)
- Automatically deletes expired items based on a timestamp attribute
- Great for:
- Session expiration
- Temporary cache
- Auto-purging old logs
✅ Reduces storage costs without manual deletion logic
DynamoDB – Backups for Disaster Recovery
| Backup Type | Description |
|---|---|
| On-Demand Backup | Manual/full backup at any time |
| Point-in-Time Recovery (PITR) | Continuous backups for last 35 days |
🧩 Restore to any second in the last 35 days (PITR)
DynamoDB – Integration with Amazon S3
Use Cases:
-
Export data from DynamoDB to S3 for:
- Analytics
- Archival
- Compliance
Tooling:
- Export to S3 (native)
- DynamoDB Streams + Lambda + S3
- Glue ETL to transform and load into Data Lakes
Summary Table
| Feature | Purpose |
|---|---|
| Tables | Store key-value / document data |
| Capacity Modes | Provisioned vs. On-Demand |
| DAX | Built-in, ultra-low-latency cache |
| Streams | Capture and process data changes |
| Global Tables | Multi-region active-active setup |
| TTL | Auto-delete expired items |
| Backups | PITR and on-demand recovery |
| S3 Integration | Export for analytics or archive |