RR 448: How To Avoid Catastrophes with Jon Druse
Jon Druse is a developer from Tennessee and has been using Rails for 15 years. He starts the show by sharing some of the background behind his RailsConf talk “How To Lose 50 Million Records in 5 Minutes” and the various mistakes that were made that lead to such a dramatic loss. The loss of these records lead the company to refactor and rewrite the entire app in MongoDB. Jon talks about the decision to use Mongo. One of the main points of his talk was that their mistake was discovered because they were trying to figure out wy Elastic Search was getting slow. He counsels listeners to avoid working your way into a poor status quo and accepting it rather than doing something to fix it. If this happens, it can lead to the sudden failure of your app. In the talk, he mentions ‘landmines’, which are things in your app you don’t want to touch and you don’t deal with it until later. In his company, they left these landmines alone and then did something they thought was unrelated, and everything blew up. He stresses the importance of looking for landmines in the parts of your app that you’re uncomfortable with. He talks about the importance of doing code reviews, and to not keep doing things the same way they’ve always been done if there is a better way to do things. He also believes that there should not be a stigma about talking about mistakes and the importance of learning from each other. He talks about specific things that his company has done to change and improve. The panel discusses the idea of process theater and when refactoring and remaking your entire app is the appropriate solution.
- Dave Kimura
- John Epperson
- Charles Max Wood
- Jon Druse
> "The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!
Charles Max Wood:
Has Jon Druse spoken at RailsConf?
Yes, he spoke at RailsConf 2019 and his talk was titled "How To Lose 50 Million Records in 5 Minutes".
What did the company do about losing all those records?
Jon's company chose to refactor and rewrite the entire app in MongoDB.
What was some of the mistakes the company made?
They were storing their data in Elastic Search rather than in a database and using timestamps as domain names.
What are landmines in code?
Landmines are things in your app you don't want to touch and that you don't deal with until later.