So they do joins in code rather than SQL? Wouldn't that risk hiding scaling problems?
The theory is that with rdbms you have a magical box that scales vertically until it doesn't. And when it doesn't all you can do is scale back the customers until you fix it with sharding or a re-architecture. Basically you tend to hang yourself with indexes and transactions. Also generally when an RDBMS fails it fails down to like 30% throughput.
I usually have an explicit DENY for dynamodb:Scan for the IAM role used to access the DDB table
I’m not sure about AWS.