Lately I’ve been talking to a lot of people about their tech stacks and people have spoken favorably about things which I have heard bad things about in the past. Two examples:
MongoDB was/is infamous for dropping writes and I had a horrible experience with it a few years back. However I’ve heard that this is no longer the case; write confirmation is enabled by default and the replication strategies have gotten better. I might not use it but maybe it’s not as bad as it was.
At Twilio in 2011 we had a rule not to use any Amazon service backed by EBS, including RDS, Route 53, ELB, SimpleDB, etc, etc. This saved us several times including the Christmas Eve outage. However time has passed and many people report positive experiences using those tools.
The line for “what’s good enough” is constantly moving, and if you are writing everything yourselves these days you’re probably not spending your engineering time wisely. How do you weigh/evaluate technologies, especially as they change over time? There are probably two levels here.
how do you evaluate whether “X-as-a-service” is of a high enough quality now? eg “Having a third party host your database is probably good enough now (RDS, Heroku Postgres)” and
how do you evaluate changes in a specific tool over time? eg Mongo, ELB..