Distributed Systems Design Fundamentals
Change the way you think about software
Distributed Systems Design Fundamentals provides the building blocks for developing scalable, resilient, and reliable software systems. In this course you will learn:
Udi Dahan
interested in the full Advanced Distributed Systems Design course? See our full-featured course.
Amazing course that helps to change the perspective on how to look on multiple problems differently. The course put lots of emphasis on how to make a system ...
Read MoreAmazing course that helps to change the perspective on how to look on multiple problems differently. The course put lots of emphasis on how to make a system better in the way that will support business . Lots of insights from Udi regarding business politics helps to understand why certain products failed or succeed in my career and how to achieve success going forward. For anyone who's afraid that this course is a promotion of NServiceBus - don't worry. Most of the course (roughly 95%) is talking about distributed system design and is technology agnostic. As a result, this course can be an extremely helpful to anyone who's working with other technology stacks.
Read LessThis course has an impressive amount of content and it's clear that the presenter Udi has spent a large amount of time doing what he is teaching which is a h...
Read MoreThis course has an impressive amount of content and it's clear that the presenter Udi has spent a large amount of time doing what he is teaching which is a huge asset. I now have a much better understanding of distributed systems.
Read LessThe course introduces the ability to tackle software problems without software but rather on the business analysis level.
The course introduces the ability to tackle software problems without software but rather on the business analysis level.
Read LessI'm a former SRE and always wanted to know more about architecture decisions, and this course gives me that. Certainly demystified the figure of architect go...
Read MoreI'm a former SRE and always wanted to know more about architecture decisions, and this course gives me that. Certainly demystified the figure of architect god for me.
Read LessExtremely helpful from SysAdmin view. I work in I/Ops and this helps understand what is going on when applications are running.
Extremely helpful from SysAdmin view. I work in I/Ops and this helps understand what is going on when applications are running.
Read LessI'm very impressed with amount of information, experience, good practices and ideas packed into that course, also teaching skills are amazing, everything see...
Read MoreI'm very impressed with amount of information, experience, good practices and ideas packed into that course, also teaching skills are amazing, everything seems very reasonable, logical and clear. As a frontend developer I probably won't be able to use this knowledge a lot in near future, but it for sure gave me perspective and better look on the whole 'software development' thing, thank you!
Read LessSeriously informative and thought provoking course that you find will often shake up the things that you thought were settled long ago in your mind. This ...
Read MoreSeriously informative and thought provoking course that you find will often shake up the things that you thought were settled long ago in your mind. This material is expertly devised and delivered by a thoroughly authoritative expert (Udi) who will also live-code to show you how things can work in code too. Udi delivers chunks of knowledge and techniques with detailed explanations which he later builds on after delegates have understood those. Not just architecture but team productivity and responsibility get treatments. In particular (see what I did there) being responsible for a specific domain and how you can share built packages for in-process consumption right across your team's slice of a solution space rather than merely sharing endpoints to business micro-services is magical and obvious when you see it. I'm reminded of my own earlier debates about local bin/ deployments vs. server GAC deployments - similar but without the in-process vs on-the-wire benefits here. This totally rewrote what SOA is for me and its not simply a smart all-singing-all-dancing enterprise service bus middleware. Thanks for messing with my head but I'm just about recovered now.
Read LessThis course has an impressive amount of content and it's clear that the presenter Udi has spent a large amount of time doing what he is teaching which is a h...
Read MoreThis course has an impressive amount of content and it's clear that the presenter Udi has spent a large amount of time doing what he is teaching which is a huge asset. I now have a much better understanding of distributed systems.
Read LessI expected just to learn lots of theory about system architecture design patterns, messaging etc But the course actually changed my whole perspective on sof...
Read MoreI expected just to learn lots of theory about system architecture design patterns, messaging etc But the course actually changed my whole perspective on software and system architecture. Very inspiring to see how knowledgeable Udi is on a wide range of software topics and how many practical examples he provide. Excellent course!
Read LessThis course is disturbing in a really good way. It makes you rethink some "good" practices that are etched deep into your sub consciousness. The material is ...
Read MoreThis course is disturbing in a really good way. It makes you rethink some "good" practices that are etched deep into your sub consciousness. The material is presented in a professional and thorough yet undoubtedly captivating manner. It is also well thought out and is relatively easy to understand thanks to the way it is structured. Another point worth mentioning is that information presented will be useful even if you do not apply SOA to the fullest extent. The presenter himself mentions a few times that what he is describing and teaching is more like a compass showing north.
Read LessAbsolutely astonishing course. The core idea to shift from business processes and business entities centric services to business capabilities and business po...
Read MoreAbsolutely astonishing course. The core idea to shift from business processes and business entities centric services to business capabilities and business policies centric services is something really new and definitely worth thinking about it. I really enjoyed how Udi thinks and learn a lot of useful approaches to deal with distributed systems. This course is not easy, it takes a lot of time to listen it, a lot of time to think about the "distributed things" and then listen some topics again. But after this course my angle of view to the SOA is changed and it is definitely what I expected and wanted from the course. Thank you very much for this amazing experience!
Read LessThe course open my mind to new approaches to solve problems and confirm some ideas I have. It covers beyond the technical known how including things in bigge...
Read MoreThe course open my mind to new approaches to solve problems and confirm some ideas I have. It covers beyond the technical known how including things in bigger picture.
Read LessAnyone interested in learning approaches to building scalable and reliable systems.
To fully benefit from this course, some experience in developing complex software systems and a basic understanding of object-oriented design are important. You'll enjoy this course even more if you have prior experience with large-scale application development involving object modeling and web services, but this is not essential. Although the examples are given from the .NET world, the course is technology agnostic.
Although NServiceBus is used in some examples, this course is not about learning NServiceBus.
If you want to learn more about NServiceBus and the Particular Platform, check out the NServiceBus Quick Start tutorial
The course is broken up into 36 short digestible videos and exercises. Each section ranges from a few minutes to an hour, with a total time of 11 hours.
We believe the best approach is to take the course with your colleagues or friends, whether as a lunch-and-learn series or scheduling half a day each week. At the end of each lesson, discuss the topics and the challenges that might arise in the context of your day-to-day job. The effectiveness of this approach has been demonstrated in many organizations like the Swedish Transport Agency .
The materials for this free course are not available for download.
The full Advanced Distributed Systems Design course is available here. Udi also runs in-person courses which include additional content about Bus & Broker Architectural Styles, SOA Building Blocks, Service Layers and Domain Models, and more. For in-person course details, go to https://particular.net/adsd. To learn more about NServiceBus, the Particular platform, and how they can help in solving the challenges you might face in implementing the learnings go to getting-started
Have more questions? Contact us at [email protected]
Welcome to the Course
Before we begin...
Distributed Systems Design - Slides
Fallacies of Distributed Computing - Intro and Additional Resources
Introduction: Systems vs. Applications
Fallacy #1: The network is reliable
Fallacy #2: Latency isn’t a problem
Fallacy #3: Bandwidth isn’t a problem
Fallacy #4: The network is secure
Fallacy #5: The network topology won’t change
Fallacy #6: The admin will know what to do
Fallacy #7: Transport cost isn’t a problem
Fallacy #8: The network is homogeneous
Summary: 8 Fallacies of distributed computing
Fallacy #9: The system is atomic
Fallacy #10: The system is finished
Fallacy #10: Towards a better development process
Fallacy #11: Business logic can and should be centralized
Coupling: Intro and Additional Resources
Coupling in Applications: Afferent and Efferent
Coupling in Systems: Platform, Temporal and Spatial
Coupling Solutions: Platform
Coupling Solutions: Temporal and Spatial
Coupling: Summary and Q&A
Messaging - Intro and Additional Resources
Why Messaging?
One-Way, Fire & Forget
Performance: Messaging vs RPC
Service Interfaces vs Strongly-Typed Messages
Fault Tolerance
Auditing
Web Services Invocation
Exercise: Selling Messaging to Your Organization - Intro
Exercise: Selling Messaging to Your Organization - Overview
Exercise: Selling Messaging to Your Organization - Discussion (Part 1)
Exercise: Selling Messaging to Your Organization - Discussion (Part 2)
Exercise: Selling Messaging to Your Organization - Summary
Sagas: Intro and Additional Resources
Sagas: Long-Running Processes
Sagas: Request-Response
Sagas: Event-Driven
Sagas: Time Component
End of Course Student Survey
Exercise: Saga Design - Intro
Exercise: Saga Design - Overview
Exercise: Saga Design - Solutions