Course Outline
Introduction to Distributed Systems
- Defining the distributed system
- Addressing common challenges: latency, consistency, and availability
- A survey of system components and communication models
Principles of Scalability
- Comparing vertical and horizontal scaling
- Implementing load balancing and elasticity
- Scaling storage, compute resources, and I/O
Core Architectural Patterns
- Client-server and multi-tier architectural designs
- Service-oriented and microservice architectures
- Event-driven architecture and the role of message queues
CAP Theorem and Consistency Models
- A detailed explanation of the CAP theorem
- Distinguishing between strong and eventual consistency
- Balancing consistency against availability
Data Distribution and Storage Approaches
- Techniques for partitioning and sharding
- Replication strategies and quorum-based reads/writes
- Leveraging distributed databases and key-value stores
Communication and Coordination in Distributed Environments
- Protocols like REST and gRPC, and message brokers (e.g., Kafka, RabbitMQ)
- Leader election and distributed consensus algorithms
- Utilizing Zookeeper or etcd for system coordination
Fault Tolerance and System Reliability
- Designing for failure and achieving graceful degradation
- Implementing retry mechanisms, timeouts, and circuit breakers
- Advancing monitoring, observability, and chaos engineering
Cloud-Native and Modern Implementation Strategies
- Managing containers, orchestration, and Kubernetes
- Prioritizing statelessness and immutability
- Applying best practices for distributed system security
Summary and Future Steps
Requirements
- A solid grasp of fundamental networking and system design principles
- Practical experience in general software development methodologies
- Prior knowledge of cloud computing and API design is beneficial
Target Audience
- Software architects and technical leads
- Backend engineers and DevOps specialists
- System designers responsible for building scalable cloud applications
Testimonials (3)
The explanation of all components and usages of them on the examples
Olga Elizova
Course - Enterprise Architecture in the UAF
Prepared project on which we could work from the start without wasting time to set up files not needed in exercises. Readiness to answer all questions that came up from participants.
Robert Walczak - Hitachi Energy
Course - Systems Modeling with SysML and Enterprise Architect (EA)
Practise exercises in EA.