About the course

Distributed Systems Design Fundamentals provides the building blocks for developing scalable, resilient, and reliable software systems. In this course you will learn:

  • Common pitfalls in building scalable systems and how to avoid them
  • The basics of messaging and how it makes your software more reliable and maintainable
  • How to architect long-running processes (hint: no more batch jobs!)
  • How to sell the concept of messaging to your organization


About the instructor

The Software Simplist

Udi Dahan

Udi Dahan is one of the world’s foremost experts on Service-Oriented Architecture, Distributed Systems and Domain-Driven Design. He's also the creator of NServiceBus, the most popular service bus for .NET.

Individual Access ($1500 FREE! for a limited time)

After enrolling, you will have access to the videos for 90 days.

interested in the full Advanced Distributed Systems Design course? See our full-featured course.


Reviews

5 star rating

Great course for any senior developer

Viktor Deineka

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 More

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 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 Less
5 star rating

Great course with lots of content

Jim Rennie

This 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 More

This 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 Less
5 star rating

More than just software

Gabriel Ian Abel

The 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 Less
5 star rating

Amazing content about Distributed System Design

Daniel Minella

I'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 More

I'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 Less
5 star rating

A great course

Michael Altamirano

Extremely 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 Less
5 star rating

Great content!

Dawid Perdek

I'm very impressed with amount of information, experience, good practices and ideas packed into that course, also teaching skills are amazing, everything see...

Read More

I'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 Less
5 star rating

Very comprehensive coverage of existing reimagined and no...

Chris Leicester

Seriously 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 More

Seriously 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 Less
5 star rating

Great course with lots of content

Jim Rennie

This 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 More

This 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 Less
5 star rating

Mind-blowingly good!!

Tosin Alawale

I 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 More

I 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 Less
5 star rating

Course of extremely high quality

Grantas Jonas Valiukėnas

This 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 More

This 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 Less
5 star rating

Overall course review

Mikhail Kumachev

Absolutely astonishing course. The core idea to shift from business processes and business entities centric services to business capabilities and business po...

Read More

Absolutely 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 Less
5 star rating

Opinionated and confronting in a good way

Arthur Ho

The 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 More

The 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 Less

FAQ

  • Who should take this course?

    Anyone interested in learning approaches to building scalable and reliable systems.

  • Are there any prerequisites for taking this course?

    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.

  • Will I learn how to use NServiceBus from the course?


    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

  • How long will it take me to complete?

    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.

  • How do I reinforce what I've learned?

    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 .

  • Can I download the course materials?

    The materials for this free course are not available for download.

  • What if I want to learn more?

    The full Advanced Distributed Systems Design course is available here. Due to the COVID-19 pandemic, we’re currently not planning on having an in-person course. You can subscribe to updates regarding the in-person course at 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]

Course Curriculum

  • 1

    Important Info About the Course

    • Welcome to the Course

    • Before we begin...

    • Distributed Systems Design - Slides

  • 2

    Fallacies of Distributed Computing

    • 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

  • 3

    Coupling

    • 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

  • 4

    Intro to Messaging

    • 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

  • 5

    Exercise: Selling Messaging to Your Organization

    • 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

  • 6

    Sagas/Long-Running Business Processes Modelling

    • Sagas: Intro and Additional Resources

    • Sagas: Long-Running Processes

    • Sagas: Request-Response

    • Sagas: Event-Driven

    • Sagas: Time Component

  • 7

    Almost completed .. help us improve by providing feedback

    • End of Course Student Survey

  • 8

    Exercise: Saga Design

    • Exercise: Saga Design - Intro

    • Exercise: Saga Design - Overview

    • Exercise: Saga Design - Solutions