In order to react to the changes that happen in a table, we need to know what the changes are. That's where DynamoDB Streams come into play. A stream is like a message queue or notification topic that you can subscribe to in order to learn about the changes that are made to a table. Messages on a stream are asynchronous, arrive exactly once, and the stream itself scales with the table.
After creating a new stream on a table, DynamoDB will publish a number of change records on the stream in response to items in the table being inserted, deleted, or updated. A change record will include the old item, the new item, the primary key, and the type of change that was made to the item.
Here's an example message with one ...