Course Details

System Design and Architecture

System Design
course-meta
Created by

Last Update

September 15, 2023

Created On

July 06, 2023

Description

System design is the process of creating a detailed plan for a complex system. It involves defining its architecture, components, interfaces, and interactions to ensure effective functionality and meet requirements. This includes analyzing needs, designing components, and managing data, defining interfaces, addressing security, optimizing performance, and validating the design through testing. It requires a multidisciplinary approach and collaboration to achieve a successful implementation.

Overview

This course Advanced System Design and Architecture provides students with a comprehensive understanding of crucial concepts and practical design problems related to system architecture. By exploring topics such as distributed systems, scalability, data storage, network protocols, and design patterns, students gain the knowledge and skills necessary to excel in roles like System Architect, Software Engineer, Cloud Architect, or Technical Lead. The course also offers opportunities for further education in specialized areas like distributed systems and cloud computing. Graduates of this course can pursue careers in various industries, explore entrepreneurship opportunities, contribute to research in areas such as distributed computing, and experience professional growth through leadership positions and challenging projects.

Features

  • Hands-on coding exercises
  • Case studies on real-world system design
  • Guest lectures from industry experts
  • Challenges
  • Quizzes
  • Assignments
  • Downloadable resources
  • Completion certificate

What you'll learn

  • Design principles - SOLID principles
  • System design fundamentals
  • Creational Patterns - Singleton pattern
  • Structural Patterns - Proxy pattern
  • Behavioural Patterns - State pattern
  • Important System Design Concepts - Modularity and abstraction
  • System Design Problems - Distributed caching
  • Designing Facebook Messenger - Real-time chat application design
  • Microblogging platform design
  • Video sharing platform design
  • Online streaming service design

Prerequisites

Curriculum

  • 8 modules

Understanding the principles of clean code

DRY (Don't Repeat Yourself) principle

KISS (Keep It Simple, Stupid) principle.

SOLID principles

CUPID principles

Introduction to system design

Types of system designs

Monolithic vs. Microservices architecture

Pros and cons of different design types

Singleton pattern

Factory method pattern

Abstract factory pattern

Builder pattern

Prototype pattern

When and how to use creational patterns

Adapter pattern

Decorator pattern

Composite pattern

Bridge pattern

Proxy pattern

When and how to use structural patterns

Observer pattern

Strategy pattern

Command pattern

State pattern

Chain of Responsibility pattern

When and how to use behavioural patterns

Scalability in system design

Availability and fault tolerance

Load balancing strategies

Caching mechanisms

Data consistency and replication

Designing a URL shortening service

Designing a social media news feed

Designing a distributed file storage system

Designing an online marketplace

Designing a recommendation engine

Analyzing and optimizing system design problems

Work on a real-world system design project, applying the principles and patterns learned throughout the course.

The project will involve designing a scalable and robust system based on a given problem statement.

Students will present and defend their design choices in front of a panel.

Instructors

Skoliko Faculty

image not found
₹3500.00
  • Modules
    8 Modules
  • Duration
    25 Hours
  • Category
    System Design

Login to Purchase the Course