Hacker News new | ask | show | jobs
by gdecandia 3317 days ago
Hi Brandur, I'll answer your final question first, then circle back. CitusDB is definitely more akin to a traditional RDMS that to Dynamo because it keeps almost all the goodness of relational databases while providing the ability to scale horizontally via clever partitioning, usually on the tenant and some other primary key (for the multi-tenant, B2B use-cases).

In contrast, Dynamo sacrificed all sorts of guarantees that relational database clients had relied on for decades - partly justifying your comments.

I left Amazon in 2009 so I can't speak to how Dynamo is used internally today (and AFAIK AWS DynamoDB is based on a different design). However, while I was at Amazon the shopping cart data was migrated to Dynamo. That was definitely "core" to the business in the sense that it was a key part of the user's experience and we couldn't lose the contents of a single shopping cart - it's a bad user experience. And for that use-case we could change the per-cart schema on write (with additional scans to clean up carts that were written to old schema versions).

2 comments

> And for that use-case we could change the per-cart schema on write (with additional scans to clean up carts that were written to old schema versions).

why would cart schema change on a per-cart basis ? I'm kind of wondering what usecase would this solve ?

I think the author means that different versions of the software would write different scheme versions, and it could be migrated in the background?
Hah, thanks for being gentle on my Dynamo versus DynamoDB faux pas — that is some seriously confusing naming.

Very interesting though. Thanks.