¿DynamoDB es eventualmente consistente?
Por defecto, sí. Las lecturas de DynamoDB son eventualmente consistentes: una lectura hecha justo después de una escritura puede no reflejarla, pero repetirla un poco más tarde devuelve el Item actualizado. Puedes optar por lecturas fuertemente consistentes en tablas y LSI; los índices secundarios globales son siempre eventualmente consistentes.
Eventualmente consistente (el valor por defecto)
Una lectura eventualmente consistente puede no reflejar una escritura recién completada. Repite la lectura un momento después y devuelve el valor actual. Este modo es el predeterminado y se factura a la mitad de la tarifa de uno fuertemente consistente.
Lecturas fuertemente consistentes
Pon ConsistentRead: true para obtener los datos confirmados más recientes (una lectura fuertemente consistente). Esto está soportado en la tabla base y en los índices secundarios locales (LSI) — pero no en los índices secundarios globales (GSI) ni en DynamoDB Streams, que son siempre eventualmente consistentes.
La exclusión de los GSI se impone en la API, no queda a tu criterio: un Query sobre un índice secundario global con ConsistentRead: true hace fallar la petición entera en vez de degradarla en silencio (el rechazo exacto).
Lo que cuesta la elección
"La mitad de precio" es la regla documentada; esto es a lo que equivale. Toma 1.000 lecturas por segundo de Items de 4 KB en us-east-1, y nada más:
| Consistencia | Unidades de lectura por lectura | Bajo demanda / mes | Aprovisionado / mes |
|---|---|---|---|
| Eventualmente consistente | 0,5 | 164,25 $ | 47,45 $ (500 RCU) |
| Fuertemente consistente | 1 | 328,50 $ | 94,90 $ (1.000 RCU) |
Las entradas, para que lo compruebes: 2.628.000 segundos en un mes de 730 horas, $0.125 por millón de unidades de solicitud de lectura, $0.00013 por RCU-hora. Un Item de 4 KB es una unidad de lectura, la mitad con consistencia eventual.
Así que $164 al mes es el precio fijo de no leer nunca un Item obsoleto en esta carga de trabajo. Eso es barato para el saldo de una cuenta y un desperdicio para un listado de productos, y por eso el flag es por petición y no por tabla. Calcula tus propias cifras en la calculadora de precios.
Por qué funciona así
DynamoDB replica automáticamente tus datos en tres zonas de disponibilidad. La consistencia eventual permite servir las lecturas sin esperar a todas las copias — más rápido y más barato; la consistencia fuerte devuelve los datos más actualizados.
¿Y con varias regiones (tablas globales)?
La replicación entre regiones tiene su propio ajuste de consistencia. Las tablas globales usan por defecto la consistencia eventual multirregión (MREC), en la que los cambios se replican a las demás regiones normalmente en un segundo o menos. En su lugar puedes crear una tabla global con consistencia fuerte multirregión (MRSC): las escrituras se replican de forma síncrona al menos a otra región, y las lecturas fuertemente consistentes en cualquier réplica devuelven siempre la última versión de un Item.
Profundiza
Lee consistencia en DynamoDB para conocer todas las contrapartidas. Descarga DynoTable para cambiar la consistencia de lectura en tus consultas.
Referencias
- DynamoDB read consistency — Amazon DynamoDB Developer Guide
- How DynamoDB global tables work — Amazon DynamoDB Developer Guide
- Query — Amazon DynamoDB API Reference
- What is Amazon DynamoDB? — Amazon DynamoDB Developer Guide
Verificado por última vez el 2026-07-13 contra la documentación oficial de AWS enlazada arriba; los precios unitarios se volvieron a comprobar el 2026-07-28.
El rechazo del GSI se reprodujo el 2026-07-28 contra DynamoDB Local 3.3.0 (amazon/dynamodb-local:latest) mediante @aws-sdk/client-dynamodb 3.1095.0, y la tabla de costes se calculó con los mismos datos de precios que usa la calculadora.