>A [[DynamoDB]] stream is an ordered flow of information about changes to items in a DynamoDB table. When you enable a stream on a table, DynamoDB captures information about every modification to data items in the table. [^aws1]
[^aws1]: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html
See also:
- [[Pros and cons of DynamoDB streams]]
## Quota limits
Defined [here](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html#limits-dynamodb-streams).
> Do not allow more than two processes to read from the same DynamoDB Streams shard at the same time. Exceeding this limit can result in request throttling.
This effectively means you can't have more than 2 [[AWS Lambda|Lambda]] functions reading off the same stream.
## Pricing of DynamoDB streams
> DynamoDB charges for reading data from DynamoDB Streams in read request units. Each GetRecords API call is billed as a streams read request unit and returns up to 1 MB of data from DynamoDB Streams. Streams read request units are unique from read requests on your DynamoDB table. You are not charged for GetRecords API calls invoked by AWS Lambda as part of DynamoDB triggers. You also are not charged for GetRecords API calls invoked by DynamoDB global tables.
---
tags: #DynamoDB, #Serverless, #AWSServices, #AWS