skip to the main content area of this page

Advanced Distributed Systems Design with SOA


Udi Dahan's 5-day course Advanced Distributed Systems Design with SOA will help you take the pain out of designing large-scale distributed systems. New technologies make it easier to comply with today’s communications and security standards, but they won't magically provide you with a robust and scalable system. Join Udi for a course packed with the wisdom of companies like SUN, Amazon and EBay.

Tried-and-true theories and fallacies will be shown, helping you to avoid costly mistakes. Communications patterns like publish/subscribe and correlated one-way request/response will be demonstrated, in conjunction with advanced object-oriented state management practices for long-running workflows. If you enjoy deep architectural discussion, if you are in charge of building a large-scale distributed system, and if you want to know more about how the big guys run their systems, sign up for this workshop!


  • Avoid common pitfalls in distributed systems
  • Use loosely coupled messaging communication
  • Identify and allocated business logic to services
  • Decompose services into layers, tiers, assemblies, and processes
  • Design for service management and monitoring in production environments

Who Should Attend:

This workshop is targeted at team leads, application and solutions architects, as well as technologists who are involved in making decisions about the overall system design of software products and projects.

Course Outline:

Module 1: Distributed Systems Theory

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

Module 2: Coupling: Platform, Temporal, and 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 – XML/SOAP
  • 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
  • Publish/Subscribe

Module 4: Bus and 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: SOA Building Blocks

One of the goals of SOA is to develop systems which are more closely aligned with Business. In this module we’ll be covering an analysis methodology from moving from the business domain to executable systems that comply with all the principles of loose- coupling.
  • Business Services
  • Business Components
  • Autonomous components and Queues

Group Analysis Exercise

In order to ensure maximum retention, students take part in a group analysis of an enterprise problem domain, identifying business services and events, experiencing first hand the tacit knowledge of parts of a solution that “feel right” and follow the rules outlined in the previous modules, as well as the other parts that “feel wrong”. Many students have described this exercise as the point of epiphany, when all the previous information “just made sense” afterward.

Module 6: Service Structure and CQRS

Drilling inside Business Services and Business Components, the topic of Command/Query Responsibility Segregation is introduced for designing collaborative, high-scale systems with great user experience. The connection between capturing user intent in task-based UIs, caching, and one-way messaging is described. Topics include:
  • Search and Queries a Denormalization
  • Validation and Business Logic for commands
  • Publish/Subscribe eventing for synchronizing denormalized caches

Module 7: Scalability and Flexibility

In order to enable agility, services must be able to scale up, out, and down quickly. In this module we’ll see how queues simplify monitoring solutions while at the same time connecting them to service-level agreements, as well as how this architecture can be capitalize on the capabilities of the cloud in order to create self-tuning systems.
  • Scaling heterogeneous server farms
  • Monitoring queues for SLA
  • Rolling deployment and versioning

Module 8: Long running processes

The distributed communications patterns would not 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 and disadvantages of orchestration
  • The connection of time and messaging

Module 9: Service Layers and Domain Models

Logic-rich services require the use of advanced techniques for logic componentization. The Domain Model Pattern enforces a high level of Separation of Concerns, yet it must eventually be connected with Service Layer code that supports many concurrent users. In this module, the topics covered will include:
  • Business Logic inside and outside a Domain Model
  • Transactions, Isolation Levels, Concurrency Models
  • Testing Domain Models

Module 10: Ultra-scalable Web Apps

As more web apps are put under the pressure of growing user bases, performing more complex tasks upon larger quantities of data, standard caching techniques are not able to handle the task by themselves. In this module, students will learn how to leverage the entire web as a cache, use Content Delivery Networks, in combination with the messaging shown in previous modules:
  • Composability and Cacheability of dynamic content
  • Scalable personalized data
  • Integrated messaging and pub/sub for caching sensitive data

Module 11: Summary and Review

In order to make sure that attendees are able to put into practice all that they’ve learned throughout the course, here we strengthen the seams between the various topics. Q and A is also a core part of this final section.

arrow Register

Date & Location

Häcker's Grand Hotel, Bad Ems, Germany

28. January - 1. Februar 2013
arrow Price and Register
Advanced Distributed Systems Design with SOA

Udi Dahan is one of 33 experts in Europe recognized by the International .NET Association (INETA), an author and trainer for the International Association of Software Architects on Reliability, Availability, and Scalability, and an SOA, Web Services, and XML Guru recommended by Dr. Dobb’s – the world’s largest software magazine. When not consulting, training, and speaking, Udi leads NServiceBus – the most popular opensource .NET Enterprise Service Bus.
Udi's blog can be found at