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