advanced
DynamoDB
Используйте managed key-value и document storage с partition keys, паттернами доступа, режимами capacity, streams и компромиссами single-table.
DynamoDB — управляемое key-value и document-хранилище под предсказуемые access patterns на масштабе. Partition key (и опциональный sort key) определяют размещение item; «горячие» партиции душат throughput независимо от ёмкости таблицы.
| Режим | Когда | |-------|-------| | On-demand | Скачкообразный или неизвестный трафик | | Provisioned + auto scaling | Стабильная нагрузка с предсказуемой ценой | | GSI / LSI | Альтернативные пути запросов к той же таблице |
Сначала модель запросов, потом ключи — не наоборот. DynamoDB Streams может будить Lambda для CDC. Single-table design сокращает round trip, но усложняет моделирование при реляционном мышлении.
На интервью: выбор partition key, hot keys, conditional writes для optimistic locking, TTL и когда DynamoDB лучше RDS для JavaScript API.
Типовые ошибки: scan больших таблиц; GSI под каждый ad-hoc фильтр; использование как Mongo с произвольными запросами; игнор eventual consistency на GSI.
Компромисс — горизонтальный масштаб и latency в миллисекундах против жёстких access patterns и более высокой сложности моделирования.
Чеклист:
- Partition key под известные формы запросов.
- Condition expressions для конкурентного доступа.
- On-demand или provisioned с алarmами.
- Batch API и projection expressions для компактных ответов.