So it finally happened. I had a Design Review with a customer the other day who is leaving DynamoDB because their cost has gone through the roof as they scaled. They listened to one of the most vocal critics of Single Table Design and went with a multi-table pattern instead. They certainly paid the price...almost $500K in the last 12 months alone.
They launched about 2 years ago with on demand pricing since their app was very low utilization. They were told horror stories about Single Table so they did not use that or the GSI Overloading pattern and instead defined 3 tables with 15 GSI's on uniquely named attributes.
This worked out great for the first 12 months until On Demand pricing started to hurt as they onboarded more and more customers. At that point they went with provisioned throughput for everything and ran into some real problems.
They now had 18 capacity buckets to provision (3 tables, 15 GSI's) and none of those buckets could share throughput with each other. The access patterns required high provisioned throughput, but the individual tables and GSI's were idle 90% of the time. Unfortunately access patterns were not sparse enough to use autoscaling effectively so provisioned throughput on all tables/GSI's had to be fairly high most of the time.
Add to this that the customer had been scared away from storing multiple entities on the same table, which removed the ability to retrieve related items with a single query. The items they stored were approximately ~1-2KB each. About half the time they were retrieving related Items from all three tables and/or GSI's on those tables. Because they avoided Single Table Design this drove cost of access up 2-3X since each item cost 1 RCU to retrieve instead of retrieving all 3 from one table for the same cost.
After working through all of this we estimated the customer had increased their cost by over $300K in the preceding 12 months by avoiding Single Table patterns. In the end they are still moving to @MongoDB because of the platform functionality that Atlas offers, but the customer stated outright that they would not even have been looking at alternatives if the cost explosion had not been so severe.
The moral of the story is don't listen to FUD. Make decisions based on facts. Do the math, run the benchmarks then decide. Data trumps annecdotal horror stories 100% of the time.
Many Developer Advocates think talking at user groups and going to conferences is their job. It's not.
DevRel is about showing people how to solve the problems they are working on with your tech. If you are just on stage talking about product features you are missing the point.
@joshstrange What are you looking for specifically? I just started using SAM instead of Serverless Framework for a home project. SAM is just much better with Lambs IMHO and esp after seeing it in work at 2022 re:Invent. re: Typescript - what’s your goal?
@chockenberry Is it your experience with the Ultra or with all Apple Watches? I have pretty good luck with heart rate tracking swimming pool laps for many years. Ultra coming soon to me.
The iPhone 14 Pro is such a great performer at the Aruban beach in bright sunlight. Battery life is much better and the screen and photos are so much better.
Dear @Apple - please stop the Apple Music ads inserted into my Apple playlists. I pay for Apple Music - I do not want ads for something that I PAY FOR. Cc: @jdalrymple