
System Design
Master the skills engineers need to design large-scale, production-grade systems from the ground up. This course covers everything from distributed databases and caching strategies to microservices and fault tolerance. Whether you're preparing for a senior engineering role or leveling up your architecture skills, this is the most complete system design resource available.
What you will learn:
You will learn how to gather requirements, estimate system load, and translate both into concrete architectural decisions. The course covers networking protocols, API design, database scaling, and caching patterns used at companies handling millions of requests per day. You will study distributed systems challenges including replication, consensus, and fault tolerance. Microservices decomposition, service discovery, and distributed data management are covered in depth. Supplementary chapters address security, observability, cloud-native infrastructure, and data-intensive pipelines. By the end, you will be able to design complete systems like a URL shortener, a real-time chat platform, and a distributed file storage service.
How you study in practice System Design
How you practise System Design
For companies looking to train their team
With Dedika for businesses, the course includes exercises and examples tailored to your own business and the specific needs of your company.
Course content
8 Chapters • 38 LessonsDuration between 4 and 360 hours (you decide)
Chapter 1HideHide detailsSee detailsFoundations of System Design
Foundations of System Design
Lesson 1 • Requirements Gathering and Scoping
Covers techniques for extracting and prioritising requirements before designing. Connects clear scoping to better architectural decisions.
Lesson 2 • Back-of-Envelope Estimation
Teaches rapid quantitative estimation of load, storage, and bandwidth. Grounds design decisions in realistic numbers from the start.
Lesson 3 • What Is System Design
Defines system design as the process of defining architecture, components, and data flow. Establishes vocabulary used throughout the course.
Lesson 4 • Core Design Goals and Trade-offs
Introduces reliability, availability, scalability, and maintainability as primary goals. Shows how optimising one goal often constrains another.
Chapter 2HideHide detailsSee detailsNetworking and Communication Basics
Networking and Communication Basics
Lesson 1 • Synchronous vs. Asynchronous Communication
Contrasts request-response with event-driven messaging patterns. Connects communication style to latency and coupling trade-offs.
Lesson 2 • Internet and Protocol Fundamentals
Reviews TCP/IP, DNS, and HTTP as the backbone of distributed communication. Provides context for higher-level design choices.
Lesson 3 • API Design Patterns
Compares REST, GraphQL, and RPC as primary API paradigms. Guides selection based on client needs and system constraints.
Lesson 4 • Long-Polling, WebSockets, and Streaming
Covers real-time communication techniques for push-based data delivery. Prepares students to design live-update features.
Chapter 3HideHide detailsSee detailsData Storage and Database Design
Data Storage and Database Design
Lesson 1 • NoSQL Database Categories
Surveys key-value, document, column-family, and graph stores. Maps each category to appropriate use cases.
Lesson 2 • Storage Engine Selection
Provides a decision framework for choosing between relational, NoSQL, and specialised stores. Reinforces trade-off reasoning from earlier sections.
Lesson 3 • Relational Database Fundamentals
Covers ACID properties, normalisation, and indexing in relational databases. Anchors later comparisons with NoSQL alternatives.
Lesson 4 • CAP Theorem and Consistency Models
Explains the CAP theorem and its practical implications for distributed storage. Introduces consistency spectrum from eventual to strong.
Lesson 5 • Database Scaling Strategies
Teaches replication, sharding, and partitioning to handle growing data volumes. Connects each strategy to specific scalability bottlenecks.
Chapter 4HideHide detailsSee detailsCaching and Performance Optimisation
Caching and Performance Optimisation
Lesson 1 • Cache Consistency Patterns
Examines cache-aside, write-through, write-behind, and read-through patterns. Connects each pattern to consistency and performance trade-offs.
Lesson 2 • Caching Layers and Placement
Covers client-side, CDN, application, and database caches. Shows how layer placement affects latency and consistency.
Lesson 3 • Caching Fundamentals
Defines cache hits, misses, eviction policies, and TTL. Establishes the performance impact of caching in distributed systems.
Lesson 4 • Advanced Caching Challenges
Addresses thundering herd, cache stampede, and cache poisoning problems. Prepares students to design resilient caching solutions.
Chapter 5HideHide detailsSee detailsScalability and Load Distribution
Scalability and Load Distribution
Lesson 1 • Vertical vs. Horizontal Scaling
Contrasts scaling up hardware with scaling out instances. Establishes when each approach is appropriate and its cost implications.
Lesson 2 • Auto-Scaling and Elasticity
Teaches reactive and predictive auto-scaling based on metrics. Prepares students to design cost-efficient elastic architectures.
Lesson 3 • Rate Limiting and Throttling
Introduces token bucket, leaky bucket, and sliding window algorithms. Protects system resources from overload and abuse.
Lesson 4 • Load Balancing Strategies
Covers round-robin, least-connections, and consistent-hash algorithms. Connects algorithm choice to traffic patterns and session requirements.
Lesson 5 • Content Delivery Networks
Explains CDN architecture, edge caching, and origin offload. Shows how CDNs reduce latency for geographically distributed users.
Chapter 6HideHide detailsSee detailsDistributed Systems and Reliability
Distributed Systems and Reliability
Lesson 1 • Disaster Recovery and Backup
Covers RTO, RPO, backup strategies, and multi-region failover. Prepares students to design systems that survive catastrophic failures.
Lesson 2 • Replication and Consensus
Explains leader-follower replication and consensus algorithms for agreement. Connects replication strategy to consistency and availability goals.
Lesson 3 • Idempotency and Exactly-Once Semantics
Addresses duplicate requests and message delivery guarantees. Ensures correctness in the presence of retries and network failures.
Lesson 4 • Fault Tolerance Patterns
Teaches circuit breakers, retries, timeouts, and bulkheads. Equips students to prevent cascading failures in distributed services.
Lesson 5 • Distributed Systems Challenges
Covers network partitions, clock skew, and partial failures as inherent distributed problems. Sets realistic expectations for system behaviour.
Chapter 7HideHide detailsSee detailsMicroservices and Service Architecture
Microservices and Service Architecture
Lesson 1 • Service Discovery and Registration
Explains client-side and server-side discovery patterns for dynamic service location. Enables resilient routing in elastic environments.
Lesson 2 • Service Decomposition Principles
Applies domain-driven design and bounded contexts to define service boundaries. Reduces coupling while maximising cohesion.
Lesson 3 • Distributed Data Management
Addresses the saga pattern, two-phase commit, and eventual consistency across services. Solves distributed transaction challenges.
Lesson 4 • Inter-Service Communication
Covers synchronous REST/gRPC and asynchronous event-driven communication between services. Connects choice to latency and coupling trade-offs.
Lesson 5 • Monolith vs. Microservices
Compares monolithic and microservice architectures across complexity, deployment, and scaling dimensions. Guides migration decisions.
Chapter 8HideHide detailsSee detailsEnd-to-End System Design Practice
End-to-End System Design Practice
Lesson 1 • Designing a Real-Time Chat System
Builds a chat architecture using WebSockets, message queues, and presence detection. Synthesises networking, storage, and scalability chapters.
Lesson 2 • Designing a URL Shortener
Walks through a complete URL shortener design covering hashing, storage, and redirection. Reinforces estimation, caching, and database selection.
Lesson 3 • Design Interview Framework
Provides a structured approach to scoping, estimating, and presenting system designs. Builds confidence and consistency in design sessions.
Lesson 4 • Designing a Distributed File Storage
Designs a large-scale file storage system with chunking, metadata, and replication. Applies distributed systems concepts to blob storage.
Lesson 5 • Designing a Social Feed System
Covers fan-out-on-write vs. fan-out-on-read for news feed generation. Integrates caching, ranking, and notification subsystems.
Lesson 6 • Architecture Review and Iteration
Teaches structured critique of existing designs to find and fix weaknesses. Develops the habit of iterative refinement in professional practice.
Your valid completion certificate
This course is for you:
Mid-level software engineers: ready to grow beyond feature work into architecture.
Backend developers: wanting to understand how their services fit at scale.
Engineering managers: needing technical depth to evaluate and guide design decisions.
Computer science graduates: entering the industry and targeting senior-track positions.
Career changers from adjacent fields: bringing domain knowledge and seeking systems fluency.
Freelance developers: aiming to pitch and deliver more complex, scalable client solutions.
What our students say
Your classes are perfect. I purchased the one-year package and finally have the opportunity to follow various topics of my interest without needing to change platforms... I thank you for everything you do, I've already recommended you to other people...

I like how the lessons are straight to the point and how I can change chapters and skip content I don't need.

I like the content and the way videos are presented and transcribed, which speeds up the process!

The platform is fast, simple to use. The diversity of content and complementary videos help a lot with learning.

Top trainings
FAQ
Who is Dedika?
Is the certificate valid in Nigeria?
Are the courses free?
What is the course workload?
What are the courses like?
How do the courses work?
What is the duration of the courses?
What is the cost or price of the courses?
What is an EAD or online course and how does it work?
PDF Course




















