Course Outline
Fundamentals of Distributed Systems
- Defining distributed systems
- Key challenges: latency, consistency, and availability
- Overview of system components and communication paradigms
Principles of Scalability
- Vertical vs. horizontal scaling strategies
- Load balancing and elastic resource allocation
- Scaling storage, computation, and I/O operations
Core Architectural Patterns
- Client-server and multi-tier architectures
- Service-oriented and microservice-based designs
- Event-driven architectures and message queue integration
CAP Theorem and Consistency Models
- Explanation of the CAP theorem
- Strong vs. eventual consistency
- Balancing consistency against availability
Data Distribution and Storage Approaches
- Partitioning and sharding techniques
- Replication methods and quorum read/write operations
- Distributed databases and key-value storage solutions
Communication and Coordination Mechanisms
- 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 implementing graceful degradation
- Implementing retry logic, timeouts, and circuit breakers
- Enhancing monitoring, observability, and chaos engineering practices
Cloud-Native and Modern Implementation
- Containers, orchestration, and Kubernetes
- Embracing statelessness and immutability
- Security best practices for distributed environments
Recap and Future Directions
Requirements
- A solid grasp of fundamental networking and system design principles
- Practical experience in general software development workflows
- Familiarity with cloud computing and API design is beneficial
Target Audience
- Software architects and technical leaders
- Backend developers and DevOps specialists
- System designers creating scalable cloud-based applications
Testimonials (4)
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)
The trainer updates the course according to the expectations of the learners
Alexandru
Course - Software Architecture in Cloud
Practise exercises in EA.