Course: Advanced Distributed System Design - Udi Dahan https://learn.particular.net/courses/adsd-online
Important info about the course
- Welcome to the course
- Distributed System Design- Slides
Course: ADSD - Fallacies of Distributed Computing
- 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
- Coupling 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
Intro to messaging
- 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
- 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
Messaging patterns
- Dealing with out of order messages
- Request-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
Architectural styles: Bus and Broker
- Intro to architectural styles
- Architectural styles: Broker
- Architectural styles: Bus
- Architectural styles: Bus vs Broker
- SOA tenets
- Service example
- Q&A
- Services modelling: Workflows, boundaries and business capabilities
- UI composition and Branding service
- IT/Ops service
Exercise: services modelling
- 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
Advanced SOA
- Business components
- Autonomous components
- Autonomous components: deployment
- Service boundaries
- Reporting
- Referential integrity
- Team structure
CQRS
- 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
SOA: operational aspects
- Deployment
- Monitoring
- Scaling
- Fault-tolerance, backups, disaster recovery
- Versioning
Sagas/Long-running business processes modelling
- Sagas: long-running processes
- Sagas: request-response
- Sagas: event-driven
- Sagas: time component
Exercise: saga design
- Exercise: saga design - overview
- Exercise: saga design - solutions
SOA: modelling
- Domain models
- Testing domain models
- Domain models deployment
- Concurrency models
- Realistic concurrency
- Domain models: sagas
Organizational transition to SOA
- The rewrite tax
- Phase 1: Good programming practices
- Phase 2: Pub/sub
- Phase 3: carve out pieces
- Phase 4: attack the database
Web Services and User Interfaces
- Caching
- Content Delivery Networks
- Personalization