Using DynamoDB to Track Changes to DynamoDB
transposit.com
transposit.com
My main pain point has been around how many times a lambda is invoked to consume a stream on a busy table but I really appreciate the record batching aspect of them.
- faceted streams wasn't in plan - streams pretty much expose a cleaned up version of base table's replication logs. In theory they could do the same for a GSI (by exposing its logs), I don't know if there's enough demand.
- Kinesis and Dynamo used the same backing storage technology. By itself, Kinesis didn't provide some of the guarantees that we wanted IIRC - so there was a different story. Also I don't think customers will want to pay for kinesis (streams was free?). You may want to expand on why kinesis streams is better for your use case though.
- yes batching was indeed put in place for this. In fact I know of big enough tables where the shard listing part got to be the bottleneck, but that should be a corner case.
Another pattern to achieve the same goal is v0/vN records, where you store all versions in the main table but keep the most recent info in v0 for quick querying. This[1] SO answer has a lot of context on the tradeoffs between the approaches.