Skip to main content

Advanced Distributed Systems Design

32h 22m 8s
English
Free

Course description

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.

Read more about the course

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

Watch Online

0:00 0:00
#Lesson TitleDuration
1Introduction: Systems vs. Applications06:11
2Fallacy #1: The network is reliable13:44
3Fallacy #2: Latency isn’t a problem16:46
4Fallacy #3: Bandwidth isn’t a problem25:11
5Fallacy #4: The network is secure13:59
6Fallacy #5: The network topology won’t change09:21
7Fallacy #6: The admin will know what to do12:10
8Fallacy #7: Transport cost isn’t a problem13:41
9Fallacy #8: The network is homogeneous11:43
10Summary: 8 fallacies of distributed computing06:07
11Fallacy #9: The system is atomic13:15
12Fallacy #10 : The system is finished18:36
13Fallacy #10: Towards a better development process26:18
14Fallacy #11 : The business logic can and should be centralized22:40
15Coupling in applications: afferent and efferent26:00
16Coupling in systems: platform, temporal and spatial11:56
17Coupling solutions: platform16:22
18Coupling solutions: temporal and spatial22:01
19Coupling: summary and Q&A12:56
20Why messaging?01:56
21One-way, fire & forget10:14
22Performance: messaging vs RPC18:41
23Service interfaces vs strongly-typed messages27:23
24Fault tolerance22:11
25Auditing05:16
26Web Services invocation26:19
27Exercise: selling messaging to your organization - overview05: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 - summary16:47
31ealing with out of order messages07:35
32Request-response18:29
33Publish-subscribe20:22
34Publish-subscribe: topics22:42
35Exercise: dealing with out of order messages - overview25:28
36Exercise: dealing with out of order messages - solutions39:41
37Visualization14:39
38Messaging patterns: summary03:42
39Intro to architectural styles07:42
40Architectural styles: Broker24:28
41Architectural styles: Bus22:24
42Architectural styles: Bus vs Broker19:32
43SOA tenets17:59
44Service example14:41
45Q&A24:38
46Services modelling: Workflows, boundaries and business capabilities22:32
47UI composition and Branding service22:04
48IT/Ops service29:44
49Exercise: services modelling (hotel) - overview15:33
50Exercise: services modelling (hotel) - solutions23:43
51SOA modelling process and approach17:52
52Domain analysis: Hotel21:41
53Domain analysis: Hotel - payment29:11
54Domain analysis: Hotel - booking23:43
55Domain analysis: Hotel - check-in18:45
56usiness components29:22
57Autonomous components33:33
58Autonomous components: deployment44:24
59Service boundaries32:56
60Reporting22:24
61Referential integrity15:12
62Team structure37:02
63Intro to CQRS11:41
64Non-collaborative domains35:38
65Collaborative domains55:21
66CQRS theory01:04:55
67CQRS in action15:20
68CQRS: summary04:23
69Q&A: event sourcing08:55
70Q&A: search, reporting, and requirements vs user wishes13:03
71Engine pattern11:24
72Q&A: engine pattern37:25
73Deployment13:54
74Monitoring21:33
75Scaling20:01
76Fault-tolerance, backups, disaster recovery17:49
77Versioning08:50
78Sagas: long-running processes21:44
79Sagas: request-response19:43
80Sagas: event-driven16:27
81Sagas: time component15:39
82Exercise: saga design - overview16:41
83Exercise: saga design - solutions56:03
84Domain models14:06
85Testing domain models03:39
86Domain models deployment09:23
87Concurrency models07:21
88Realistic concurrency24:49
89Domain models: sagas14:49
90The rewrite tax08:36
91Phase 1: Good programming practices13:36
92Phase 2: Pub/sub17:04
93Phase 3: carve out pieces23:36
94Phase 4: attack the database49:27
95Caching22:15
96Content Delivery Networks21:00
97Personalization15:17

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

Parsing Algorithms

Parsing Algorithms

Sources: udemy, Dmitry Soshnikov
Parsing or syntactic analysis is one of the first stages in designing and implementing a compiler. A well-designed syntax of your programming language is a big
4 hours 27 minutes 33 seconds
Fundamentals of Operating Systems

Fundamentals of Operating Systems

Sources: udemy
Operating systems orchestrate many processes, allow access to memory, disk and network and execute the process by scheduling them to the CPU. Sounds simple...
21 hours 41 minutes 1 second
Skills of a Successful Software Engineer

Skills of a Successful Software Engineer

Sources: Fernando Doglio
"Skills of a Successful Software Engineer" is a guide to best practices for working in a development team. The book will help you grow from a solo programmer...
Become A Debugging Master And Fix Issues Faster

Become A Debugging Master And Fix Issues Faster

Sources: Rahul Pandey
For many software engineers, bugs seem like daunting obstacles - unnecessary distractions from the "real" work of developing new features and releasing...
2 hours 6 minutes 24 seconds