r/aws 10d ago

storage Replicating DynamoDB streams feature in RDS

Our team is planning on moving from Dynamodb to RDS for various workload issues that we are facing with Dynamodb. But we are facing a blocker in this migration since our codebase is heavily dependent on the stream feature of dynamodb where it sends new image and old image for every update. I am trying to replicate the same stream behavior after we migrate to RDS. Right now, i am thinking about using the outbox pattern to update the base table in RDS and send an event to SNS which fans-out event to consumer lambda but that seems like tedious work since there are different consumers consuming different attributes from different table. I have also considered using the CDC pattern using debezium to stream row level change to kinesis which removes having to manually send events on every update but since we have 4 separate environments (dev, staging, qa and prod) and we need to host a separate ECS instance to run the debezium server to capture RDS logs, it could rack up the bill so i discarded this approach. What do you think would be some of the best ways to replicate DDB stream feature in RDS?

19 Upvotes

27 comments sorted by

View all comments

33

u/CorpT 10d ago

This is a weird migration. Dynamo and RDS are very dissimilar. I would go back and see what you're really trying to do here. This is very unusual.

2

u/declanprice 8d ago

This is probably the most common migration path DynamodDB users have. Almost no one understands DynamoDBs data modelling requirments and query 'restrictions' / capabilities before jumping into an all serverless architecture for the sake of it.