DynamoDB scales to basically infinity and costs pennies to start. But if you've built on it with TypeScript, you know the day-to-day is rough:
You build partition/sort key strings by hand (USER#${username}) and typo them.
You marshal and unmarshal every attribute ({ S: ... }, { N: ... }).
You get zero type safety — the SDK returns Record<string, AttributeValue> | undefined and wishes you luck.
Single-table design — the thing you're supposed to do — is all in your head.






