Operations & Cost

Modeling puts data in the table. Operating it — consistent writes, change feeds, expiry, capacity bills, multi-region survival, and recovery — decides whether you trust DynamoDB in production or treat it as the database that throttled at 2 a.m.

This section walks one running scenario: the audit log for a multi-tenant SaaS — immutable "who did what, when" records enterprise buyers ask for. One table, partitioned per tenant:

PKSKactoractionip
TENANT#acmeEVENT#2026-06-24T09:14Z#a1USER#88login.success203.0.113.7
TENANT#acmeEVENT#2026-06-24T09:15Z#a2USER#88invoice.export203.0.113.7
TENANT#globexEVENT#2026-06-24T09:15Z#b9USER#12role.granted198.51.100.4

Each guide adds one operational concern to this same table.

What you can do after

  • Use transactions where all-or-nothing writes matter and know the cancel reasons AWS returns.
  • Wire DynamoDB Streams and TTL for append-only audit retention without a nightly delete job.
  • Choose on-demand vs provisioned capacity and read the rounding rules that inflate small items.
  • Plan global tables and PITR recovery with realistic RPO/RTO expectations.

Reading order

  1. Cost model and SQL scans — how scan-shaped reads show up on the bill before you operate the audit table.
  2. TransactionsTransactWriteItems for paired audit + balance updates; idempotency tokens.
  3. Streams — stream consumers that ship audit events to SIEM or warehouse without polling the table.
  4. TTL — expire old EVENT# rows automatically; epoch seconds on the TTL attribute.
  5. On-demand vs provisioned — pay per request vs reserved capacity; when each wins for bursty audit traffic.
  6. Auto scaling — provisioned mode scaling policies.
  7. ThrottlingProvisionedThroughputExceededException and on-demand adaptive throttling under spike.
  8. Table size and item count — what AWS reports vs what the table's Overview estimates locally.
  9. Global tables — multi-region replication for the audit log; write conflicts and reader endpoints.
  10. Backup and PITR — continuous backups and point-in-time restore windows.
0 of 12 readQuiz
DynamoDB Cost Model: Why SQL Can Hide the Bill
Why SQL over DynamoDB can hide the bill — how joins, arbitrary WHERE filters and aggregates compile to Scans, and the RCU math behind Query vs Scan.
Intermediate4 min read
DynamoDB Transactions: The Complete Guide (w/ Examples)
DynamoDB transactions with TransactWriteItems — up to 100 all-or-nothing actions, a 4 MB limit, double write capacity, and how conflicts cancel.
Advanced6 min read
DynamoDB Streams: The Complete Guide (w/ Examples)
DynamoDB Streams — the 24-hour change-data-capture log, the four StreamViewType options, per-item ordered records, and triggering Lambda on item changes.
Advanced6 min read
DynamoDB TTL: The Complete Guide to Expiring Items
DynamoDB TTL auto-deletes items once a Unix-epoch timestamp attribute passes, typically within a few days, and those deletes cost no write capacity.
Intermediate4 min read
DynamoDB On-Demand vs Provisioned Capacity
DynamoDB On-Demand vs Provisioned capacity — pay-per-request against reserved throughput, when each is cheaper, and how traffic shape picks the mode.
Intermediate6 min read
DynamoDB On-Demand Throughput: Measured
DynamoDB on-demand throughput, measured live — a fresh table's ~4,130 writes/s ceiling, reads past 12,700/s, and how the ceiling grows under sustained load.
Intermediate5 min read
How to Set Up DynamoDB Auto Scaling
Set up DynamoDB auto scaling on provisioned capacity — console and CLI steps, picking target utilization and min/max, and the limits that still throttle.
Intermediate8 min read
DynamoDB Throttling and How to Fix It
Why DynamoDB throttles — the four documented causes, per-partition limits of 3,000 read and 1,000 write units per second, and the fix for each.
Intermediate9 min read
DynamoDB Table Size and Item Count
Get a DynamoDB table size and item count from the free DescribeTable estimate, which lags up to six hours, or an exact count with Scan Select COUNT.
Beginner5 min read
DynamoDB Global Tables: Multi-Region Replication Explained
DynamoDB Global Tables — multi-region active-active replication, last-writer-wins conflicts, the MREC and MRSC consistency modes, and the 99.999% SLA.
Advanced6 min read
DynamoDB Backup and Point-in-Time Recovery Guide
DynamoDB backup and point-in-time recovery — on-demand snapshots vs continuous PITR, the 1-to-35-day window, and the settings a restore doesn't bring back.
Intermediate6 min read
Knowledge checkTake the quiz
Check what you’ve learned in this section.

On-demand write request units round up per 1 KB. A 1.1 KB audit event bills two WRUs per write, not one — capacityUnits rounds at the kilobyte boundary. At 100 sustained 1 KB writes per second in us-east-1 on-demand, writes alone land around $164.25 per month before GSIs or streams. The pricing calculator prices your tenant count and event rate.

TTL deletes are free in capacity terms but asynchronous; do not use TTL as a real-time delete mechanism for compliance holds you must prove immediately.

See it in DynoTable

Download DynoTable and inspect the audit table as you read. A table's Overview shows key structure, GSIs, and size/item estimates. The TTL converter turns calendar dates into epoch seconds for TTL attributes — TTL expects seconds, not milliseconds.

DynoTable reads backup/PITR settings if present but does not configure them; control plane changes stay in AWS console or IaC. Same for creating streams or switching capacity mode — the app is data-plane focused.

Price a burst of failed-login writes vs steady audit append in the pricing calculator before you pick on-demand for a spiky security feed.