[Oldletter #8] Understanding, debugging and testing distributed systems

Every Friday, I’m sharing a short list of evergreen articles/resources broadly related to software engineering that wouldn’t typically get shared in most tech newsletters or social media feeds.

  • Notes on Distributed Systems for Young Bloods (2013) by Jeff Hodges. Great primer on the concerns you need to think about when building distributed systems. Especially useful for developers used to building monolithic synchronous apps. Covers many concepts including partial failures, availability, robustness, latency, backpressure, monitoring, feature flags, ID partitioning, SOA and more.
  • Computers can be understood (2020) by Nelson Elhage. An essay on a mindset to help you succeed when working with complex software systems.

    Computers are complex, but need not be mysteries. Any question we care to ask can, in principle and usually even in practice, be answered. Unknown systems can be approached with curiosity and determination, not fear.

  • Testing Microservices, the sane way (Medium.com) (2017) by Cindy Sridharan. Long piece on the many considerations when testing distributed systems — what, when and how to test. The author defines testing as “a best effort verification of the system” and states:

    four axes — the goal, scope, tradeoffs and payoffs — can prove to be a good proxy for being able to assess how effective any form of testing might be.

Submitting your recommendations

If you’d like to share an evergreen article/book which has significantly influenced your thinking or practice around software delivery, please email it through to me and I’ll add it to my backlog for sharing in future editions.

Have a great weekend!

— Paul

Join daily email list

I publish short emails like this on building software with serverless on a daily-ish basis. They’re casual, easy to digest, and sometimes thought-provoking. If daily is too much, you can also join my less frequent newsletter to get updates on new longer-form articles.

    View Emails Archive

    ☎️ Serverless Clarity Call

    Need quick guidance on a specific issue on your AWS serverless project? Or just wondering where to start with serverless?

    Book a call and ask me anything.

    Learn more >>

    🛫 Serverless Launchpad

    Ready to start building your new AWS serverless project but need help with getting everything setup?

    The Serverless Launchpad is a done-for-you DevOps service installed in under a week. You get a leading-practice multi-account AWS environment, a scaffolded codebase and architecture including the common AWS serverless services, isolated cloud environments for individual developers, automated delivery pipelines right through to production and much more. Everything is IaC, extensively documented and handed over to your developers.

    Learn more >>