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 для компактных ответов.