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.

Everything you should know about distributed systems design

This online course on modern architecture design practices for distributed systems with Service-Oriented Architecture will change the way you think about designing software systems.

  • Are you sold on the concept of microservices but struggle to implement them in your system?
  • Are you tired of spending every day trying to tame the big ball of mud monster?
  • Does the coupling in your software make your system hard to deliver and impossible to scale?

We've recorded an entire week of distributed design training by Udi Dahan containing everything you wish you'd known years ago about distributed systems design, such as:

  • Avoiding common pitfalls in distributed systems
  • Using loosely coupled messaging communication
  • Identifying and allocating business logic to services
  • Decomposing services into layers, tiers and processes
  • Designing for service management and monitoring in production environments

Now you can fast-track your way to building a scalable distributed system at your own pace.

And the best part?

You can learn to master the principles in this course wherever and whenever, which makes this course:

  • More convenient to attend: all you need to attend is an internet connection and a browser
  • More cost-effective: you won't have to travel abroad
  • Easier to approve: you won't necessarily need to take time off
  • More flexible: you can time-travel by going back and forth, or even increase the playback speed

In this course you'll get:

  • 5 days worth of expert systems design training
  • Lifetime access to the course material
  • Lifetime access to the ADSD alumni forum
  • Copy of slides used in the course

Within 24 hrs after the purchase, you'll receive an email with a code for enrolling 9 other people.

Looking for other options? Contact us at [email protected]

Course Curriculum

  • 1

    Important info about the course

    • Welcome to the course

    • Distributed System Design- Slides

  • 2

    Fallacies of Distributed Computing

    • 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 : The business logic can and should be centralized

  • 3


    • 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

    • 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 - 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

    Messaging patterns

    • Dealing with out of order messages

    • Request-response

    • Publish-subscribe

    • Publish-subscribe: topics

    • Exercise: dealing with out of order messages - overview

    • Exercise: dealing with out of order messages - solutions

    • Visualization

    • Messaging patterns: summary

  • 7

    Architectural styles: Bus and Broker

    • Intro to architectural styles

    • Architectural styles: Broker

    • Architectural styles: Bus

    • Architectural styles: Bus vs Broker

  • 8

    Intro to SOA

    • SOA tenets

    • Service example

    • Q&A

    • Services modelling: Workflows, boundaries and business capabilities

    • UI composition and Branding service

    • IT/Ops service

  • 9

    Exercise: services modelling

    • Exercise: services modelling (hotel) - overview

    • Exercise: services modelling (hotel) - solutions

    • SOA modelling process and approach

    • Domain analysis: Hotel

    • Domain analysis: Hotel - payment

    • Domain analysis: Hotel - booking

    • Domain analysis: Hotel - check-in

  • 10

    Advanced SOA

    • Business components

    • Autonomous components

    • Autonomous components: deployment

    • Service boundaries

    • Reporting

    • Referential integrity

    • Team structure

  • 11


    • Intro to CQRS

    • Non-collaborative domains

    • Collaborative domains

    • CQRS theory

    • CQRS in action

    • CQRS: summary

    • Q&A: event sourcing

    • Q&A: search, reporting, and requirements vs user wishes

    • Engine pattern

    • Q&A: engine pattern

  • 12

    SOA: operational aspects

    • Deployment

    • Monitoring

    • Scaling

    • Fault-tolerance, backups, disaster recovery

    • Versioning

  • 13

    Sagas/Long-running business processes modelling

    • Sagas: long-running processes

    • Sagas: request-response

    • Sagas: event-driven

    • Sagas: time component

  • 14

    Exercise: saga design

    • Exercise: saga design - overview

    • Exercise: saga design - solutions

  • 15

    SOA: modelling

    • Domain models

    • Testing domain models

    • Domain models deployment

    • Concurrency models

    • Realistic concurrency

    • Domain models: sagas

  • 16

    Organizational transition to SOA

    • The rewrite tax

    • Phase 1: Good programming practices

    • Phase 2: Pub/sub

    • Phase 3: carve out pieces

    • Phase 4: attack the database

  • 17

    Web Services and User Interfaces

    • Caching

    • Content Delivery Networks

    • Personalization