Distributed Systems Learning Resources

Most links tend to be readings on architecture itself rather than code itself.

Bootcamp

Read things here before you start.

Books

Papers

Must read papers on distributed systems. While nearly all of Lamport's work should feature here, just adding a few that must be read.

Storage & Databases

Messaging systems

Distributed Consensus and Fault-Tolerance

Testing, monitoring and tracing

While designing distributed systems are hard enough, testing them is even harder.

Programming Models

Verification of Distributed Systems

  • Jepsen A framework for distributed systems verification, with fault injection @aphyr has featured enough times in this list already, but Jepsen and the blog posts that go with are a quintessntial addition to any distributed systems reading list.
  • Verdi A Framework for Implementing and Formally Verifying Distributed Systems Paper

Videos

Courses

Blogs and other reading links

Meta Lists

Other lists like this one

Organization Design / Team Dynamics

  • How Do Committees Invent? 🔸PDF - Melvin E. Conway, Datamation magazine 1968. The original article defining Conway's Law.
  • Service per Team - Each team is responsible for one or more business functions (e.g. business capabilities). A team owns a code base consisting of one or more modules. Its code base is sized so as to not exceed the cognitive capacity of team. The team deploys its code as one or more services. A team should have exactly one service unless there is a proven need to have multiple services.
  • Start with Team Cognitive Load - Team Topologies 🔺YT - DOES19 London. The "monoliths vs microservices" debate often focuses on technological aspects, ignoring strategy and team dynamics. Instead of technology, smart-thinking organizations are beginning with team cognitive load as the guiding principle for modern software. In this talk, we explain how and why, illustrated by real case studies.

Real Life Stories

Enterprise & Verticals

  • Commercetools ![c] - Headless commerce platform.
  • Flamingo - Framework to build flexible and modern e-commerce applications.
  • Interact ![c] - CRM microservices for rapid delivery of tailored solutions.
  • Moltin ![c] - E-commerce API for developers.
  • Predix ![c] - Industrial microservices platform.
  • Skava ![c] - Provides microservices for all the functions of your store, and the glue to hold them together.

Theory

Articles & Papers

Talks

Tutorials

Books

  • Building Microservices 🔸PDF - Building Microservices: Designing Fine-grained Systems. Sam Newman. Preview Edition.
  • Istio in Action - Teaches you how to implement a full-featured Istio-based service mesh to manage a microservices application.
  • Microservice Architecture: Aligning Principles, Practices, and Culture - Practical advice for the strategy and design of Microservices.
  • Microservices in Action - A practical book about building and deploying microservice-based applications.
  • Microservices in .NET Core - A comprehensive guide to building microservice systems using the .NET stack.
  • Microservice Patterns - Teaches how to build applications with the microservice architecture and how to refactor a monolithic application to a microservices.
  • Microservices from Theory to Practice - Microservices from Theory to Practice: Creating Applications in IBM Bluemix Using the Microservices Approach. IBM Redbooks publication.
  • Migrating to Cloud Native Application Architectures - This O’Reilly report defines the unique characteristics of cloud native application architectures such as microservices and twelve-factor applications.
  • Pulsar in Action - A practical book about developing microservice-based applications using Apache Pulsar by Manning Press.
  • Testing Microservices with Mountebank - Provides a testing strategy using mountebank for service virtualization, promoting independent releases of Microservices
  • The Art of Scalability - The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise. Martin L. Abbott, Michael T. Fisher.
  • The New Stack eBook Series - A Comprehensive Overview of the Docker and Container Ecosystem.
    • Book 1: The Docker Container Ecosystem.
    • Book 2: Applications & Microservices with Docker & Containers.
    • Book 3: Automation & Orchestration with Docker & Containers.
    • Book 4: Network, Security & Storage with Docker & Containers.
    • Book 5: Monitoring & Management with Docker & Containers.
  • The Tao of Microservices - Teaches the path to understanding how to apply microservices architecture with your own real-world projects.
  • Micro Frontends in Action - A practical guide that teaches how to develop large software projects with multiple independent teams.

Sites & Organizations

Emerging Technologies

  • Enso - Visual and textual functional programming language with a focus on productivity, collaboration and development ergonomics.
  • Holochain - A framework for distributed applications, allowing you to build apps without any network constraints. This means every user controls their own data, and it can't be sold or exposed to third parties.
  • Ops - Free open source tool to build, run and deploy existing linux applications as unikernels.
  • SAFE Network - Powered by the spare capacity of everyday computers, SAFE replaces the vulnerable structure of the existing Web with a decentralised, autonomous network. One that is secure, and accessible to everyone.
  • Solid - Empowers users and organizations to separate their data from the applications that use it. It allows people to look at the same data with different apps at the same time. It opens brand new avenues for creativity, problem-solving, and commerce.