Skip to content

img System Design Learning Path (6 📚)

You want to create systems that resolve complicated technical problems, to find optimal solutions, to learn how evolve your systems to the next level, to rack your brains designing wonderful architectures that withstand the overwhelming onslaught of hyped user hordes. Well, as AC/CD sing: It’s a long way to the top if you wanna Rock’ n’ Roll. But do not yield, tough efforts often bring solid results, keep calm and read hard!

Order Cover Info Description
1 img System Design Interview: An insider’s guide
Alex Xu
Published in 2020
309 pages
🐅 📗
Even though the author focus in system design interview this book is also very useful if you are interested in learning how to build systems from the ground up. Each chapter is a different interview that illustrates a different use case where technical decisions are made, balancing trade-offs to come up with an acceptable solution. The variety of problems resolved is great and the content is expanded by a list of books and articles referenced at the end of each chapter.
1 img Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services
Brendan Burns
Published in 2018
162 pages
🐕 📙 🔄
Designing distributed systems is not easy, after years of experience patterns emerged and this book bring some of those patterns together to convey ways to split, replicate, communicate and reuse components. Work queues, batch processing, adapters, ambassadors, event-driven processing or deployment patterns are some of the topics covered along with hands on examples for illustration.
1 img Design Patterns for Cloud Native Applications: Patterns in Practice Using APIs, Data, Events and Streams
Kasun Indrasiri, Sriskandarajah Suhothayan
Published in 2021
311 pages
🐕 📗 🔝
Despite of being oriented mainly to developers, this book could help you to understand how cloud native applications are built and the way they interact. Some predominating patterns for communication, composition, data and api management or scalability are explained in these pages, it could be really useful to know them if you are developing or designing systems based on the cloud.
2 img System Design Interview volume 2: An insider’s guide
Alex Xu
Published in 2022
424 pages
🐅 📗
An extension of the first part, the structure follow the same pattern but adding new cases. The author is well versed in many topics, from networking and databases to software development and algorithms, and it shows along the pages. Learn to design location based services, stock exchanges, game leaderborads and more. If you like the first one you will like this.
2 img Foundations of Scalable Systems: Designing Distributed Architectures
Ian Gorton
Published in 2022
320 pages
🐕 📗 🆗
A fair amount of information about distributed systems and scalability is contained in this book: databases, event processing, caching, asynchronous messaging… When designing systems it’s necessary to think about how incresing load will affect aspects like performance and reliability, that’s the reason why scalability is a big subject and one of the most important properties of a system since the cloud flourished and extended.
4 img Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
Martin Kleppmann
Published in 2017
616 pages
🐅 📙 🔄
Learn the fundamental properties of data driven applications and how to treat data in terms of storage, replication, indexing, querying, processing and consistency. A new edition of this jewel is in order because the publication was some years ago, but don’t be fooled, the content is still valid so go ahead and dive in.

The following paths are opened to you now, choose wisely:

  • Microservices 🚧: Study the pinnacle of distributed systems architectures, learn its tenets, and foremost, when and how to implement it.
  • Event Driven Architecture (EDA) 🚧: Asynchronous communication between services is possible using events. There is a lot to learn here, the main challenge is changing the way you think about communication patterns.

Want to change the subject? Here are some suggestions about other paths you can explore:

  • Software Architecture 🚧: Building software is not only about writing code, to design great platforms you should learn to think about extensibility, efficiency, easy integration, resilience, flexibility, and much more.

  • Kubernetes ☑: Run containers at scale and unlock the power of building microservice platforms thanks to the Kubernetes orchestrator.

learn about these related concepts! 📍 🔰 💎

#scalability #manageability #resilience #observability #reliability #mantainability #extensibility #high-availability #databases #algorithms

⬆ back to top


Last update: 2024-04-03