DynamoDB, Data modeling
DynamoDB single-table modeling for a high-throughput SaaS
Re-modeled a struggling multi-table design into a single-table DynamoDB schema with predictable cost.
Client
Scale-up SaaS, AU
Duration
5 weeks
Year
2025
The problem
A SaaS team had spread one product across nine DynamoDB tables, each with its own access patterns, GSIs, and edge cases. Joins lived in application code, hot partitions were common at peak, and the bill was scaling faster than usage. Rewrites were politically expensive but the model was the real bottleneck.
The solution
Ran an access-pattern audit across the codebase, then re-modeled onto a single table with composite PK and SK, three sparse GSIs, and an event log partition for audit. Migration ran behind a dual-write feature flag with a verifier Lambda. DynamoDB Streams fanned out denormalization to read views. Capacity settled into on-demand with adaptive partition behavior, and queries that used to hit Postgres-style joins became single Query calls.
Architecture
Stack
Outcomes
−72 percent
Read cost per active user
0 in 90 days
Hot partition incidents
12 ms
P99 query latency