12 ms·
I like guides like this that can help beginners bridge the gap between hobby and professional quality development. I’ll add one more tip, the one I think has s
by encoderer 7y ago
I like guides like this that can help beginners bridge the gap between hobby and professional quality development.
I’ll add one more tip, the one I think has saved me more sleep and prevented more headache than any other as I’ve developed a SaaS app over the last 5 years.
It’s simple:
Handle failure cases in your code, and write software that has some ability to heal itself.
Here are a few things I’ve developed that have saved my butt over the years:
1) An application that is deployed alongside the primary application, tails error logs and replays failed requests. (Idempotent requests make this possible)
2) many built-in health checks like checking back pressure on queues and auto-throttling event emitters when queues get backed up
3) Local event buffering to deal with latency spikes in things like SQS.
I hope to eventually write more about these systems on our blog but I never seem to find the time
- matwood 7y ago> write software that has some ability to heal itself. IMO, this is the biggest change that helps me sleep at night and starts with treating all servers as cattle. For me it means every server can be rebuilt and deployed at the press of a button which leads to having failed health checks automatically redeploy servers.
- intrepidhero 7y agoThat's good advice but it's hardly simple.
- deleted 7y ago[deleted]
- theshrike79 7y ago4) Sometimes it's better to fail fast and try again than spend time writing extensive error handling and retry logic.
- ambicapter 7y agoBut unless you inform the audience of those times, they will continue being ignorant of when to use your advice, as if you'd never given this advice at all.
- iudqnolq 7y agoAs a beginner, until I heard that advice a little while ago it hadn't occurred to me. I disagree advice that doesn't clarify everything has no value. It transforms an unknown unknown into a known unknown that you can fiddle around with or Google further to learn about.