We used SimpleDB in the past (before DynamoDB existed), but there were several limitations around object size and total size for a given table that we were not able to overcome. DynamoDB has almost no limits, and can scale to store as much data as we need it to.
Similarly, Aurora or any other MySQL DB can only store so much information before it needs to be scaled out further and shared across multiple servers. DynamoDB is completely serverless, and automatically handles sharding for us. MongoDB
has more features, but required us to manually manage servers, and was ultimately much more expensive and less reliable for features we didn't really need.Algolia
is actually something we use in addition
to DynamoDB, but it's not our source of truth. Since Algolia
has limits on how much data can be stored (and you pay more for more data storage), we only store a minimal amount of information in Algolia
, what we would search on, and the sources of truth are always in DynamoDB. Additionally, Algolia
's search performance is limited, so we only use it for searching unknown or unexpected use cases, such as listing how many publications or stories match a particular query, vs DynamoDB which is used to look up when a user logs in.