---
id: "aws-dynamodb-streams"
type: "component"
kind: "change-data-capture"
provider: "aws"
category: "messaging"
docs: "https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html"
url: "https://localhost:3000/catalogue/components/aws-dynamodb-streams"
---

# Amazon DynamoDB Streams

Item-level change log of a DynamoDB table, ordered per item and retained for 24 hours.

| | |
|---|---|
| Provider | [aws](https://localhost:3000/catalogue?provider=aws) |
| Kind | [Change data capture](https://localhost:3000/catalogue/kinds/change-data-capture) |
| Category | Messaging |
| Official docs | [https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html) |

## Properties

| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| `encryptionAtRest` | boolean | — | no | true | inherited |
| `exactlyOnce` | boolean | — | no | true | inherited |
| `managed` | boolean | — | no | false | **true** |
| `mode` | enum | `log-based`, `trigger`, `polling` | no | "log-based" | **"log-based"** |
| `ordered` | boolean | — | no | true | **true** |
| `retentionHours` | integer | — | no | 24 | inherited |
| `schemaEvolution` | boolean | — | no | false | inherited |
| `streamEnabled` | boolean | — | no | false | inherited |
| `streamViewType` | enum | `keys-only`, `new-image`, `old-image`, `new-and-old-images` | no | — | inherited |

Bold values are the ones this component pins.

## Rules that apply · 0

No rule selects this kind or its category.

## Other products of the same kind · 14

- [Data Transmission Service](https://localhost:3000/catalogue/components/alibaba-dts.md) `alibaba-dts` — alibabacloud
- [AWS DMS](https://localhost:3000/catalogue/components/aws-dms.md) `aws-dms` — aws
- [Brooklin](https://localhost:3000/catalogue/components/brooklin.md) `brooklin` — default
- [Alibaba Canal](https://localhost:3000/catalogue/components/canal.md) `canal` — default
- [Generic change data capture](https://localhost:3000/catalogue/components/change-data-capture.md) `change-data-capture` — default
- [Debezium](https://localhost:3000/catalogue/components/debezium.md) `debezium` — default
- [Estuary Flow](https://localhost:3000/catalogue/components/estuary.md) `estuary` — default
- [Apache Kafka Connect](https://localhost:3000/catalogue/components/kafka-connect.md) `kafka-connect` — default
- [Maxwell](https://localhost:3000/catalogue/components/maxwell.md) `maxwell` — default
- [Striim](https://localhost:3000/catalogue/components/striim.md) `striim` — default
- [Database Migration Service](https://localhost:3000/catalogue/components/google-database-migration-service.md) `google-database-migration-service` — gcp
- [Datastream](https://localhost:3000/catalogue/components/google-datastream.md) `google-datastream` — gcp
- [IBM Data Replication](https://localhost:3000/catalogue/components/ibm-data-replication.md) `ibm-data-replication` — ibm
- [OCI GoldenGate](https://localhost:3000/catalogue/components/oci-goldengate.md) `oci-goldengate` — oci

## Use it in a design

```yaml
nodes:
  - { id: "aws-dynamodb-streams", component: "aws-dynamodb-streams" }
```

## Source (`component` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../../schema/component.schema.json
# Amazon DynamoDB Streams: the item-level change log of a DynamoDB table ("Change data capture for DynamoDB
# Streams"). That page states a stream is off until you enable it on the table, that records live for 24
# hours and are then trimmed, that each record appears exactly once and records for a given item appear in
# the order the item was modified, that encryption at rest encrypts stream data, and that the StreamViewType
# chosen at enable time cannot be edited afterwards.
schemaVersion: "1"
type: "component"
id: "aws-dynamodb-streams"
kind: "change-data-capture"
provider: "aws"
docs: "https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html"
defaults:
  mode: "log-based"
  ordered: true
  managed: true
properties:
  streamEnabled:
    type: "boolean"
    default: false
  retentionHours:
    type: "integer"
    default: 24
  streamViewType:
    type: "enum"
    values: ["keys-only", "new-image", "old-image", "new-and-old-images"]
  encryptionAtRest:
    type: "boolean"
    default: true
  exactlyOnce:
    type: "boolean"
    default: true
```

Human page: https://localhost:3000/catalogue/components/aws-dynamodb-streams
