[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

    Architecture & Process Review

    Built a serverless app on AWS, but struggling with performance, maintainability, scalability or DevOps practices?

    I can help by reviewing your codebase, architecture and delivery processes to identify risk areas and their causes. I will then recommend solutions and help you with their implementation.

    Learn more >>

    🪲 Testing Audit

    Are bugs in production slowing you down and killing confidence in your product?

    Get a tailored plan of action for overhauling your AWS serverless app’s tests and empower your team to ship faster with confidence.

    Learn more >>