Amazon DynamoDB provides a key-value store and document database designed for single-digit millisecond response times regardless of scale. It's durable (multi-master, multi-region), offers backup and restore, and can be fronted by an in-memory cache for production applications. As a fully managed service, scaling happens without customer intervention.


  • Tables contain the data.
  • Items are rows.
  • Attributes are columns.
  • Primary Keys uniquely identify values in the Table. There are two types:
    • Partition Keys are composed of a single attribute. This key is used as the input to the hash function which determines the physical location of the data in the table's storage medium.
    • Composite Primary Keys are comprised of separate partition keys and sort keys. The sort key is used to sort the data in the storage medium within a partition.
  • Secondary Indexes allow querying for Items in a table by a non-primary key. They're not required for querying, but they generally improve performance. There are two kinds:
    • A Global Secondary Index has both partition and sort keys that can be different to those on the table.
    • A Local Secondary Index has the same partition key but a different sort key.
  • Streams optionally allows you to capture modification events in tables in near real-time, in-order. Together with Lambda these can be used to create triggers to perform actions, e.g. send notifications.


DAX clusters can be deployed between your application and DynamoDB to perform in-memory caching to speed up data access.


  • Storage utilisation.
  • Read throughput.
  • Write throughput.