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

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

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. 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 courses@particular.net

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