Hacker News new | ask | show | jobs
by qaq 1165 days ago
DynamoDB is a sad hack that heavy marketing had elevated in absence of better offerings on AWS at the time. It's not particularly good as KV store let alone something more serious.
4 comments

> It's not particularly good as KV store let alone something more serious.

Nonsense. DynamoDB is a pretty good KV store, and a killer feature as part of AWS' free tier. I dare you to present a cheaper and more performance KV store.

My experience coding for it on an IoT Hackaton, has made me decide to never touch it again unless there is no other option, like the customer wants it.

Really nothing that could earn my heart over traditional RDMS offerings.

You are comparing apples with chairs and the lack of examples as to why you don't like it doesn't make your comment useful.
Lets start by the way one has to explicitly create indexes, or query types for what one can search for.

No proper REPL experience.

The barebones SDK.

That is how much I can still remember from 2018's experience using it.

You haven't missed much. The overall developer experience is still... poor.

Dynamo has its use cases. Imagine a database with 100K+ of devices sending different metrics out every minute or so. You need to retrieve metrics by device ID:metric and date/time range. I migrated a similar DB from Cassandra to Dynamo, and it worked really well (for that use case!)

In the years since, I've worked at other companies and seen Dynamo used where it was a really poor fit: tons of filtering/scanning, relatively tiny datasets that require many secondary indexes. I even know of one app that starts up and loads an entire DDB table into memory! If you're not absolutely sure Dynamo is a good fit, it isn't. Use a relational database.

> Lets start by the way one has to explicitly create indexes

I never heard anyone complain that they had to explicitly create primary keys when creating tables in RDBMS.

> or query types for what one can search for.

I never heard anyone complain that they had to put together SQL queries to get data out of a RDBMS.

It seems your only complain boils down to pointing out nosql databases aren't SQL databases, and you didn't bothered to onboard onto the tool you knew nothing about. That's hardly insightful.

With Dynamo, it's not creating indexes that's the problem: I also have to change my code to use those indexes. I've been using DynamoDB off and on, at several different companies over the past 10+ years. I've been using SQL databases for 25+ years. The DDB developer experience is less than optimal.
So, disclaimer then, that was five years ago
I'm curious if you can give a long form critique? I've never heard any complaints of it from folks using it "in anger."

I have heard a lot of complaints on it not doing as much. But I swear every time I've taken a dive on those complaints, it has been by folks that don't pay attention to the costs of what they are wanting. :(

DynamoDB is an absolute beast in the right hands. It is just difficult to use and far less forgiving than a basic SQL database - which should have been the go to for something like Amplify.
maybe you could argument and suggest as to why it is not good as a KVS which is the number 1 use case for dynamoDB and everything in dynamo was optimized to be a KVS which a lot of multipurpose nosql database can't say.
Because it has arbitrary limits and bad ergonomics. 100 items per transaction wtf. 1MB of data per second write per partition and so on.