Advanced Distributed Systems Design
(Online Course)
Change the way you think about software
Udi Dahan
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.
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:
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:
In this course you'll get:
Within 24 hrs after the purchase, you'll receive an email with a code for enrolling 9 other people.
Looking for other options? Contact us at [email protected]
Welcome to the course
Distributed System Design- Slides
Introduction: Systems vs. Applications
Fallacy #1: The network is reliable
Fallacy #2: Latency isn’t a problem
Fallacy #3: Bandwidth isn’t a problem
Fallacy #4: The network is secure
Fallacy #5: The network topology won’t change
Fallacy #6: The admin will know what to do
Fallacy #7: Transport cost isn’t a problem
Fallacy #8: The network is homogeneous
Summary: 8 fallacies of distributed computing
Fallacy #9: The system is atomic
Fallacy #10 : The system is finished
Fallacy #10: Towards a better development process
Fallacy #11 : The business logic can and should be centralized
FREE PREVIEWCoupling in applications: afferent and efferent
Coupling in systems: platform, temporal and spatial
Coupling solutions: platform
Coupling solutions: temporal and spatial
Coupling: summary and Q&A
Why messaging?
One-way, fire & forget
Performance: messaging vs RPC
Service interfaces vs strongly-typed messages
Fault tolerance
Auditing
Web Services invocation
Exercise: selling messaging to your organization - overview
Exercise: selling messaging to your organization - discussion (part 1)
Exercise: selling messaging to your organization - discussion (part 2)
Exercise: selling messaging to your organization - summary
Dealing with out of order messages
FREE PREVIEWRequest-response
Publish-subscribe
Publish-subscribe: topics
Exercise: dealing with out of order messages - overview
Exercise: dealing with out of order messages - solutions
Visualization
Messaging patterns: summary
Intro to architectural styles
Architectural styles: Broker
Architectural styles: Bus
Architectural styles: Bus vs Broker
SOA tenets
FREE PREVIEWService example
Q&A
Services modelling: Workflows, boundaries and business capabilities
UI composition and Branding service
IT/Ops service
Exercise: services modelling (hotel) - overview
Exercise: services modelling (hotel) - solutions
SOA modelling process and approach
Domain analysis: Hotel
Domain analysis: Hotel - payment
Domain analysis: Hotel - booking
Domain analysis: Hotel - check-in
Business components
Autonomous components
Autonomous components: deployment
Service boundaries
Reporting
Referential integrity
Team structure
Intro to CQRS
Non-collaborative domains
Collaborative domains
CQRS theory
CQRS in action
CQRS: summary
Q&A: event sourcing
Q&A: search, reporting, and requirements vs user wishes
Engine pattern
Q&A: engine pattern
Deployment
Monitoring
Scaling
Fault-tolerance, backups, disaster recovery
Versioning
Sagas: long-running processes
Sagas: request-response
Sagas: event-driven
Sagas: time component
Exercise: saga design - overview
Exercise: saga design - solutions
Domain models
Testing domain models
Domain models deployment
Concurrency models
Realistic concurrency
Domain models: sagas
The rewrite tax
Phase 1: Good programming practices
Phase 2: Pub/sub
Phase 3: carve out pieces
Phase 4: attack the database
Caching
Content Delivery Networks
Personalization