
The Engineering Room with Dave Farley The 3 Golden Rules Of Distributed Systems | Sam Newman In The Engineering Room Ep. 40
22 snips
Oct 12, 2025 Sam Newman, an expert in microservices and resilient distributed systems, chats about how to approach architectural decisions in software development. He emphasizes the importance of starting simply before scaling to microservices. The conversation dives into his three golden rules for distributed systems, focusing on time, targets, and resource limitations. They explore practical strategies like timeouts and retries, while also addressing the impact of AI on coding practices and the importance of maintaining learning opportunities for junior developers.
AI Snips
Chapters
Books
Transcript
Episode notes
Treat Microservices As A Last Resort
- Microservices increase distribution and therefore systemic complexity; treat them as an architecture of last resort.
- Start simple and only increase distribution as you need scale or independent deployability.
Delay Distribution Until Boundaries Settle
- Keep uncertain modules inside a single process while you learn the domain boundaries.
- Carve modules into separate services only after boundaries are stable to reduce costly distributed refactors.
Hedge By Modularizing Data Early
- Hedge future distribution by keeping transactional data modular early where feasible.
- Separate data modules while deploying together to make later splits easier.





