Designing loosely-coupled systems

Arkitektur & Design .NET

Although the development industry has changed technologies repeatedly over the years, countless systems end up devolving into monolithic balls of mud. Join Udi for an in-depth dive into communications patterns like publish/subscribe, correlated one-way request/response, and object-oriented state management practices for long-running workflows. If you enjoy deep architectural discussion and are involved with building a large-scale distributed systems, this is for you.

{While the principles are technology agnostic, demos will be shown in .NET only}

Module 1: Distributed Systems Theory

Decades of distributed systems development have taught us many lessons. In this module we'll cover many historical mistakes as well as proven best practices for scalable and robust design. Topics include:

•Fallacies of distributed systems


Module 2: Coupling: Platform, Temporal, & Spatial

Loose coupling has become the watchword of complex systems development, yet few understand its multiple dimensions. In the module we'll be covering the three different dimensions of coupling as well as patterns for dealing with them.

•Platform Coupling

•Temporal Coupling – Synchronous/Asynchronous

•Spatial Coupling – Endpoints/Topics

Module 3: Asynchronous Messaging Patterns

Although scalability is achieved through the use of asynchronous message passing, more advanced message exchange patterns are required to handle today's complex integration scenarios. This module will cover the most commonly used patterns:

•One way

•Correlated Request/Response


Module 4: Bus & Broker Architectural Styles

Enterprise Service Buses are all the rage these days. In this module we'll be covering what's the difference between the Bus architectural style, and the more well-known Broker, found commonly in many EAI projects. Topics will include:

•Architectural advantages and disadvantages

•Technological advantages and disadvantages

Module 5: Long running processes

The distributed communications patterns wouldn't be complete without a discussion on orchestration. In this module we'll see how to manage the state of long-running distributed communication flows as well as:

•Encapsulating process logic

•Advantages & disadvantages of orchestration

•The connection of time and messaging


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


09:00 - 17:00


Distributed Systems Theory

Coupling: Platform, Temporal, & Spatial

Asynchronous Messaging Patterns

Bus & Broker Architectural Styles

Long running processes


Attendees do not need a computer to follow this course.