I've inherited an application that uses DynamoDB to store data, but we're facing throttling problems because of the Write Capacity Units (WCU) limits. We have a simple schema with five columns, and one column—let's call it 'items'—gets frequent updates every 10 to 15 seconds for a few hours at a time. This update frequency is pushing us against the WCU limit, even with the on-demand option. My superior wants us to consider alternatives to DynamoDB, and I'm looking at three options: Amazon Aurora, Amazon Keyspaces, and Valkey. Given that we need to update a lot of rows frequently, with only one column being updated and a data retention requirement of one month, which solution would you recommend?
2 Answers
It sounds like you might just need to reconfigure your DynamoDB setup. There are ways to manage your WCU and avoid throttling. For instance, increasing the WCU or even rotating your tables periodically could help. Also, when using on-demand capacity, keep in mind that scaling takes some time, so consider pre-warming your capacity before high-traffic batches. If you're looking for a workaround, why not tweak your WCU settings for a few days instead of switching databases?
Keyspaces is basically a Cassandra API on top of DynamoDB, so switching to that wouldn't solve your throttling issue. As for Valkey, using it might just complicate things further. I suggest taking a closer look at your schema design. It sounds like you might be updating the same item too frequently instead of spreading out the updates across multiple items. This could be impacting your performance significantly.
Exactly! If you're updating the same column constantly, it might be a good idea to rethink your approach. With multiple tenants sharing the same event IDs, some restructuring could ease the load and improve efficiency.

Totally agree! Automating the WCU adjustments can save you a lot of headache later on. Also, if you scale down after your peak hours, it helps manage costs. Plus, if you’re worried about capacity, check out CloudWatch metrics—they're super helpful in tracking usage.