Skip to main content
CourseFlix

Advanced Distributed Systems Design

32h 22m 8s
English
Free

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 of your system components make your software 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

About the Author: Udi Dahan

Udi Dahan thumbnail

Udi Dahan is the founder and CEO of Particular Software (the company behind the NServiceBus messaging framework), a long-running speaker on distributed systems, and one of the practitioners most associated with bringing Domain-Driven Design and event-driven architecture into mainstream .NET enterprise practice. His material is taught at the level of senior architects designing systems that will run in production for a decade.

The CourseFlix listing carries Advanced Distributed Systems Design — a course aimed at architects and senior engineers working on multi-service systems where the trade-offs around messaging, consistency, and failure modes drive the architecture.

Watch Online 97 lessons

  • Space or K: play or pause
  • J: rewind 10 seconds
  • L: forward 10 seconds
  • Left Arrow: rewind 5 seconds
  • Right Arrow: forward 5 seconds
  • Up Arrow: volume up
  • Down Arrow: volume down
  • M: mute or unmute
  • F: toggle fullscreen
  • T: toggle theater mode
  • I: toggle mini player
  • 0 to 9: seek to 0 to 90 percent of the video
  • Shift plus N: next video
  • Shift plus P: previous video
0:00 0:00
#Lesson TitleDuration
1Introduction: Systems vs. Applications 06:11
2Fallacy #1: The network is reliable 13:44
3Fallacy #2: Latency isn’t a problem 16:46
4Fallacy #3: Bandwidth isn’t a problem 25:11
5Fallacy #4: The network is secure 13:59
6Fallacy #5: The network topology won’t change 09:21
7Fallacy #6: The admin will know what to do 12:10
8Fallacy #7: Transport cost isn’t a problem 13:41
9Fallacy #8: The network is homogeneous 11:43
10Summary: 8 fallacies of distributed computing 06:07
11Fallacy #9: The system is atomic 13:15
12Fallacy #10 : The system is finished 18:36
13Fallacy #10: Towards a better development process 26:18
14Fallacy #11 : The business logic can and should be centralized 22:40
15Coupling in applications: afferent and efferent 26:00
16Coupling in systems: platform, temporal and spatial 11:56
17Coupling solutions: platform 16:22
18Coupling solutions: temporal and spatial 22:01
19Coupling: summary and Q&A 12:56
20Why messaging? 01:56
21One-way, fire & forget 10:14
22Performance: messaging vs RPC 18:41
23Service interfaces vs strongly-typed messages 27:23
24Fault tolerance 22:11
25Auditing 05:16
26Web Services invocation 26:19
27Exercise: selling messaging to your organization - overview 05:57
28Exercise: selling messaging to your organization - discussion (part 1) 22:36
29Exercise: selling messaging to your organization - discussion (part 2) 30:41
30Exercise: selling messaging to your organization - summary 16:47
31ealing with out of order messages 07:35
32Request-response 18:29
33Publish-subscribe 20:22
34Publish-subscribe: topics 22:42
35Exercise: dealing with out of order messages - overview 25:28
36Exercise: dealing with out of order messages - solutions 39:41
37Visualization 14:39
38Messaging patterns: summary 03:42
39Intro to architectural styles 07:42
40Architectural styles: Broker 24:28
41Architectural styles: Bus 22:24
42Architectural styles: Bus vs Broker 19:32
43SOA tenets 17:59
44Service example 14:41
45Q&A 24:38
46Services modelling: Workflows, boundaries and business capabilities 22:32
47UI composition and Branding service 22:04
48IT/Ops service 29:44
49Exercise: services modelling (hotel) - overview 15:33
50Exercise: services modelling (hotel) - solutions 23:43
51SOA modelling process and approach 17:52
52Domain analysis: Hotel 21:41
53Domain analysis: Hotel - payment 29:11
54Domain analysis: Hotel - booking 23:43
55Domain analysis: Hotel - check-in 18:45
56usiness components 29:22
57Autonomous components 33:33
58Autonomous components: deployment 44:24
59Service boundaries 32:56
60Reporting 22:24
61Referential integrity 15:12
62Team structure 37:02
63Intro to CQRS 11:41
64Non-collaborative domains 35:38
65Collaborative domains 55:21
66CQRS theory 01:04:55
67CQRS in action 15:20
68CQRS: summary 04:23
69Q&A: event sourcing 08:55
70Q&A: search, reporting, and requirements vs user wishes 13:03
71Engine pattern 11:24
72Q&A: engine pattern 37:25
73Deployment 13:54
74Monitoring 21:33
75Scaling 20:01
76Fault-tolerance, backups, disaster recovery 17:49
77Versioning 08:50
78Sagas: long-running processes 21:44
79Sagas: request-response 19:43
80Sagas: event-driven 16:27
81Sagas: time component 15:39
82Exercise: saga design - overview 16:41
83Exercise: saga design - solutions 56:03
84Domain models 14:06
85Testing domain models 03:39
86Domain models deployment 09:23
87Concurrency models 07:21
88Realistic concurrency 24:49
89Domain models: sagas 14:49
90The rewrite tax 08:36
91Phase 1: Good programming practices 13:36
92Phase 2: Pub/sub 17:04
93Phase 3: carve out pieces 23:36
94Phase 4: attack the database 49:27
95Caching 22:15
96Content Delivery Networks 21:00
97Personalization 15:17

Course content

97 lessons · 32h 22m 8s
Show all 97 lessons
  1. 1 Introduction: Systems vs. Applications 06:11
  2. 2 Fallacy #1: The network is reliable 13:44
  3. 3 Fallacy #2: Latency isn’t a problem 16:46
  4. 4 Fallacy #3: Bandwidth isn’t a problem 25:11
  5. 5 Fallacy #4: The network is secure 13:59
  6. 6 Fallacy #5: The network topology won’t change 09:21
  7. 7 Fallacy #6: The admin will know what to do 12:10
  8. 8 Fallacy #7: Transport cost isn’t a problem 13:41
  9. 9 Fallacy #8: The network is homogeneous 11:43
  10. 10 Summary: 8 fallacies of distributed computing 06:07
  11. 11 Fallacy #9: The system is atomic 13:15
  12. 12 Fallacy #10 : The system is finished 18:36
  13. 13 Fallacy #10: Towards a better development process 26:18
  14. 14 Fallacy #11 : The business logic can and should be centralized 22:40
  15. 15 Coupling in applications: afferent and efferent 26:00
  16. 16 Coupling in systems: platform, temporal and spatial 11:56
  17. 17 Coupling solutions: platform 16:22
  18. 18 Coupling solutions: temporal and spatial 22:01
  19. 19 Coupling: summary and Q&A 12:56
  20. 20 Why messaging? 01:56
  21. 21 One-way, fire & forget 10:14
  22. 22 Performance: messaging vs RPC 18:41
  23. 23 Service interfaces vs strongly-typed messages 27:23
  24. 24 Fault tolerance 22:11
  25. 25 Auditing 05:16
  26. 26 Web Services invocation 26:19
  27. 27 Exercise: selling messaging to your organization - overview 05:57
  28. 28 Exercise: selling messaging to your organization - discussion (part 1) 22:36
  29. 29 Exercise: selling messaging to your organization - discussion (part 2) 30:41
  30. 30 Exercise: selling messaging to your organization - summary 16:47
  31. 31 ealing with out of order messages 07:35
  32. 32 Request-response 18:29
  33. 33 Publish-subscribe 20:22
  34. 34 Publish-subscribe: topics 22:42
  35. 35 Exercise: dealing with out of order messages - overview 25:28
  36. 36 Exercise: dealing with out of order messages - solutions 39:41
  37. 37 Visualization 14:39
  38. 38 Messaging patterns: summary 03:42
  39. 39 Intro to architectural styles 07:42
  40. 40 Architectural styles: Broker 24:28
  41. 41 Architectural styles: Bus 22:24
  42. 42 Architectural styles: Bus vs Broker 19:32
  43. 43 SOA tenets 17:59
  44. 44 Service example 14:41
  45. 45 Q&A 24:38
  46. 46 Services modelling: Workflows, boundaries and business capabilities 22:32
  47. 47 UI composition and Branding service 22:04
  48. 48 IT/Ops service 29:44
  49. 49 Exercise: services modelling (hotel) - overview 15:33
  50. 50 Exercise: services modelling (hotel) - solutions 23:43
  51. 51 SOA modelling process and approach 17:52
  52. 52 Domain analysis: Hotel 21:41
  53. 53 Domain analysis: Hotel - payment 29:11
  54. 54 Domain analysis: Hotel - booking 23:43
  55. 55 Domain analysis: Hotel - check-in 18:45
  56. 56 usiness components 29:22
  57. 57 Autonomous components 33:33
  58. 58 Autonomous components: deployment 44:24
  59. 59 Service boundaries 32:56
  60. 60 Reporting 22:24
  61. 61 Referential integrity 15:12
  62. 62 Team structure 37:02
  63. 63 Intro to CQRS 11:41
  64. 64 Non-collaborative domains 35:38
  65. 65 Collaborative domains 55:21
  66. 66 CQRS theory 01:04:55
  67. 67 CQRS in action 15:20
  68. 68 CQRS: summary 04:23
  69. 69 Q&A: event sourcing 08:55
  70. 70 Q&A: search, reporting, and requirements vs user wishes 13:03
  71. 71 Engine pattern 11:24
  72. 72 Q&A: engine pattern 37:25
  73. 73 Deployment 13:54
  74. 74 Monitoring 21:33
  75. 75 Scaling 20:01
  76. 76 Fault-tolerance, backups, disaster recovery 17:49
  77. 77 Versioning 08:50
  78. 78 Sagas: long-running processes 21:44
  79. 79 Sagas: request-response 19:43
  80. 80 Sagas: event-driven 16:27
  81. 81 Sagas: time component 15:39
  82. 82 Exercise: saga design - overview 16:41
  83. 83 Exercise: saga design - solutions 56:03
  84. 84 Domain models 14:06
  85. 85 Testing domain models 03:39
  86. 86 Domain models deployment 09:23
  87. 87 Concurrency models 07:21
  88. 88 Realistic concurrency 24:49
  89. 89 Domain models: sagas 14:49
  90. 90 The rewrite tax 08:36
  91. 91 Phase 1: Good programming practices 13:36
  92. 92 Phase 2: Pub/sub 17:04
  93. 93 Phase 3: carve out pieces 23:36
  94. 94 Phase 4: attack the database 49:27
  95. 95 Caching 22:15
  96. 96 Content Delivery Networks 21:00
  97. 97 Personalization 15:17

Related courses

  • The Software Designer Mindset (COMPLETE) thumbnail

    The Software Designer Mindset (COMPLETE)

    By: ArjanCodes (Arjan Egges)
    "The Software Designer Mindset" is a course that teaches all aspects of software architecture and offers practical advice on creating scalable software.
    14 hours 32 minutes 58 seconds
  • System Design for Beginners thumbnail

    System Design for Beginners

    By: Arpit Bhayani
    "System Design for Beginners" is a course for beginners in a convenient self-paced format.
    12 hours 2 minutes 41 seconds 3 / 5
  • The System Design Masterclass thumbnailFree

    The System Design Masterclass

    By: Arpit Bhayani
    A masterclass that helps you become great at designing scalable, fault-tolerant, and highly available systems. This is a prime and intermediate-level cohort-bas
    43 hours 13 minutes 49 seconds 4 / 5

Frequently asked questions

What is Advanced Distributed Systems Design about?
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.
Who teaches Advanced Distributed Systems Design?
Advanced Distributed Systems Design is taught by Udi Dahan. You can find more courses by this instructor on the corresponding source page.
How long is Advanced Distributed Systems Design?
Advanced Distributed Systems Design contains 97 lessons with a total runtime of 32 hours 22 minutes. All lessons are available to watch online at your own pace.
Is Advanced Distributed Systems Design free to watch?
Yes — Advanced Distributed Systems Design is a free online course on CourseFlix. You can watch every lesson without a paid subscription.
Where can I watch Advanced Distributed Systems Design online?
Advanced Distributed Systems Design is available to watch online on CourseFlix at https://courseflix.net/course/advanced-distributed-systems-design. The page hosts every lesson with the integrated video player; no download is required.