Fundamentals of Distributed Systems

Making a reliable centralized application is hard enough, but distributed systems require some extra consideration. This course will teach you the important concepts and basic patterns of reliable distributed systems.
Course info
Rating
(48)
Level
Intermediate
Updated
Feb 1, 2021
Duration
3h 13m
Table of contents
Course Overview
Designing Reliable Applications
Connecting Services
Identifying Service Boundaries
Invoking Business Processes
Keeping Things Running
Managing Complex Scenarios
Description
Course info
Rating
(48)
Level
Intermediate
Updated
Feb 1, 2021
Duration
3h 13m
Your 10-day individual free trial includes:

Expert-led courses

Keep up with the pace of change with thousands of expert-led, in-depth courses.
Description

Distributed systems are hard to build, complicated to run, and difficult to understand. If you need one, then it’s because a centralized application just won't do. In this course, Fundamentals of Distributed Systems, you’ll learn to build and operate complex systems made of loosely connected services. First, you’ll explore the properties of a reliable service. Next, you’ll discover how to connect services together using messages and APIs. Finally, you’ll learn how to apply patterns to tackle hard collaborative problems. When you’re finished with this course, you’ll have the skills and knowledge of distributed systems needed to design and operate software at a global scale.

About the author
About the author

Mathematician and software developer, Michael L Perry applies formal proof to creating reliable software. He has developed a method starting from the works of the greats (Meyer, Rumbaugh, Knuth), and embodied it in his open-source frameworks (Update Controls and Correspondence).

More from the author
More courses by Michael Perry
Section Introduction Transcripts
Section Introduction Transcripts

Course Overview
Hello, I'm Michael L. Perry. Welcome to Fundamentals of Distributed Systems. I'm a software mathematician, meaning that I apply the rigor of mathematics to produce quality software for my clients at Improving. A lot of that software has been in the form of distributed systems. The tools have evolved over the years, but the fundamentals remain the same. Synchronization, message, passing, eventual consistency, conflict detection and mitigation, these are the issues that arise when data is persisted in two or more loosely integrated applications. But the software is just the beginning. Distributed systems evolve from cross‑functional teams solving complex business problems. To be successful, you have to assemble those teams and align your IT strategy with your organization's business objectives. In this course, we'll navigate the complexities of building distributed systems to deliver business value. Some of the ideas that we'll explore include immutable databases, idempotent and commutative messages, Conway's law, and sagas. And by the end of this course, you'll understand how to build autonomous technology teams that work together to construct reliable, consistent, and valuable distributed systems. We will evolve a distributed system throughout the course. To get the most out of the example, begin with some familiarity with C#, ASP.NET Core, and Entity Framework Core. From here, you'll want to dive even deeper into distributed architectures with courses on CQRS, Event Storming, and Microservices. I hope you'll begin your journey toward building software at scale with me and Fundamentals of Distributed Systems at Pluralsight.