DynamoDB cannot store empty strings
I&#x27;m surprised this is news in 2016. Anyone who uses DynamoDB hits this immediately and suffers a bit from it.<p>Would you like more insider advice on using DynamoDB? My startup Level Money used it as a primary data store and has kept it throughout our lifespan. We&#x27;re migrating away from it now, but I wouldn&#x27;t necessarily discourage people from using it.<p><i>NEVER SCAN ONE TABLE AND UPDATE ROWS AS YOU ENCOUNTER THEM, OR USE NATIVE KEY ORDERING TO TRIGGER UPDATES ANYWHERE ELSE!</i><p>Secretly DynamoDB is just a bunch of SQL databases with floating masters, or so we surmise. If you iterate across things in native order without randomization and at a very high speed then you will overload individual shards. You can end up at 10X write provisioning and still get rate limit responses. Randomizing the traversal of the keyspace fixes this.<p>Which is yeah, really really bad for sufficiently large datasets. You have to get creative to randomize it sufficiently in some cases.<p>Still, it&#x27;s quite nice to have something like DynamoDB handling your scaling early on. It&#x27;s a surprisingly useful design for a database and keeps you rom over-relying on relational properties which eventually don&#x27;t scale. It also forces you to develop a story for cross-table transactional queries and their failures quite early in your platform&#x27;s life cycle. Forcing that discipline is almost always healthy.<p>If you&#x27;re not careful though, it becomes frightfully expensive. Before we understood why we were rate limiting we panicked and ended up with &gt;$12k&#x2F;mo in DDB costs. Not really a sustainable cost for a very small company.