Writes & Operations

Reads get the attention, but writes are where correctness and operational pain live. There's no UPDATE … WHERE that scans, no unique constraint across columns, and no ALTER TABLE to reshape your data. You build those guarantees yourself out of conditional writes and key design.

This section covers the write patterns you'll reach for in production and the operational problems — botched migrations, hot keys — that follow from getting them wrong.

0 of 8 readQuiz
DynamoDB Batch Operations
DynamoDB batch operations — BatchGetItem reads 100 items per call, BatchWriteItem writes 25, why a batch is not a transaction, and how to retry leftovers.
Intermediate5 min read
How to Delete Multiple Items in DynamoDB
How to delete multiple items in DynamoDB — BatchWriteItem, TransactWriteItems, PartiQL batches and TTL — plus why there is no DELETE ... WHERE statement.
Beginner7 min read
DynamoDB ReturnValues: Get the Old or New Item
DynamoDB ReturnValues hands back the old or new item from PutItem, UpdateItem or DeleteItem without a second read — the five options and when each helps.
Intermediate3 min read
DynamoDB Atomic Counters
How DynamoDB atomic counters work with an ADD update expression, why they aren't idempotent, and when to reach for a conditional update instead.
Intermediate5 min read
DynamoDB Uniqueness on Multiple Attributes
How to enforce a unique constraint on multiple DynamoDB attributes — unique email AND username — with marker items and a condition-guarded TransactWriteItems.
Advanced6 min read
DynamoDB Migrations Without Downtime
DynamoDB migrations without downtime — how to add a new entity type and access pattern to a live table using lazy backfill, online GSIs, and dual-writes.
Advanced6 min read
DynamoDB Hot Partitions
A DynamoDB hot partition is when one partition key absorbs a disproportionate share of traffic and throttles. Here's how to spot it and design it out.
Intermediate8 min read
Knowledge checkTake the quiz
Check what you’ve learned in this section.

Start with atomic counters if you write concurrent updates; jump to migrations if you're staring down a schema change.

Try DynoTable to run conditional writes and watch the results live.