Skip to content

TableBatchWrite

Table-level command to perform a batch write across multiple entity types.

Unlike BatchWrite which operates on a single entity type, this command accepts write operations from multiple entities via entity.prepare(new BatchWrite({ ... })) and executes them in a single DynamoDB BatchWrite request.

Unprocessed puts and deletes are returned per entity in a tuple matching the input order.

const { unprocessedPuts, unprocessedDeletes } = await table.send(new TableBatchWrite({
writes: [
userEntity.prepare(new BatchWrite({
items: [{ userId: 'u1', name: 'Alice' }],
deletes: [{ userId: 'u2', name: 'Bob' }],
})),
orderEntity.prepare(new BatchWrite({
items: [{ orderId: 'o1', status: 'pending', total: 99 }],
})),
],
}))
const [userUnprocessedPuts, orderUnprocessedPuts] = unprocessedPuts
const [userUnprocessedDeletes, orderUnprocessedDeletes] = unprocessedDeletes

Writes extends PreparedBatchWrite<any>[]

new TableBatchWrite<Writes>(config): TableBatchWrite<Writes>;

TableBatchWriteConfig<Writes>

TableBatchWrite<Writes>

execute(table): Promise<TableBatchWriteResult<Writes>>;

DynamoTable

Promise<TableBatchWriteResult<Writes>>

TableCommand.execute