DynamoDB is schema-less and tables can be created/deleted on the fly.
Cassandra schemas are a royal pain in the ass and poorly documented. Depending on the cassandra version all schema-changes require cluster-restarts and/or various magic incantations that you better get exactly right or you may incur service-outage and data-loss.
DynamoDB is generally "pay and forget". Keeping a cassandra ring healthy is a major undertaking.
And since we're talking about data I care about, it has to be from a company that I can be confident will be around in a year's time, and not the victim of another acquhire shutdown.
I'm sure there are many people like me who are willing to forego a product that may be technically more sophisticated or even straight-out superior if I don't have to worry about provisioning servers & doing sysadmin work.
I wonder how adding nodes works - is it as simple as provisioning one and you're done, or does the user still have to configure the ring to add the new Riak node?
The documentation says this:
To grow your cluster, just add a machine of the same
type and size and run the appropriate Riak commands to
link the additional node to the cluster.
Too bad about the cost, too :|
"Note that the required number of units of Read Capacity is determined by the number of items being read per second, not the number of API calls."
Maybe its just me but that makes this insanely expensive for almost all of my applications. I buy 50 'read units' which really means 50 rows / sec or 100 rows / sec if eventual consistency reads, as long as the row is < 1KB in size. So it costs ~$7 a month for sustained ~50-100KB/sec read speeds.
I can think of several recent applications that required 100ish rows to build each view (lots of tabular data). It would seem I'd almost need 100 'read units' for every 2-3 users, more with caching obviously but that has its limits and sorta defeats the purpose of a ultra low latency store.
Amazon offers CloudWatch for individual tables.