Building Practical
Distributed Systems

Learn the principles and theory behind Distributed Systems by building a decentralized social network.

Course Overview

Modern Backend Systems are actually Distributed Systems in disguise. This course will combine theory, workshops,
and projects to help you gain practical experience.

You will also learn key concepts like CAP theorem, Event Driven Systems, Monitoring and Observability to building highly scalable,
distributed backend services.

Meet the Instuctors

Victor Neo

ex-Engineering Director

  • Experienced in launching new products and scaling them to support millions of users
  • Build a world-class engineering team >> Learn More

Li-Yi Yang

Sr Software Engineer

  • Experienced in designing, developing, and delivering core e-commerce platform solutions >> Learn More

Participation Requirements

  • Need to be proficient in at least 1 programming language that is able to write HTTP API services
  • Know about In-memory Stores
  • Have used Database (Relational / NoSQL) and Code Versioning in small projects.

Who is this for?

  • Software engineers who want to learn and build distributed systems
  • Frontend engineers with little or some backend experience looking to move to Backend

6-week Live Course

  • Duration: week of 5/2 to week 6/6
  • - Schedule: Every Tuesday from 19:30-21:30 (GMT+8)

Topics Covered

Distributed Systems Foundations

  • Introduction to Distributed Systems and their properties
  • Types of Distributed Systems (Peer-to-Peer, Client-Server, Hybrid)
  • CAP Theorem and its implications
  • Fallacies of Distributed Systems

Data and Replication

  • Overview of data replication and its importance
  • CAP applied to Databases
  • Consensus Protocols for leader election
  • Backups and Mitigation Strategies

Monitoring and Observability

  • Importance of Monitoring and Observability in Distributed Systems
  • Metrics to monitor in Distributed Systems (Latency, Throughput, Error Rates)
  • Logging and Tracing in Distributed Systems
  • Distributed tracing (e.g. Zipkin, Jaeger)
  • Monitoring tools (e.g. Prometheus, Grafana)

Event Driven Systems

  • Queues and Distributed Message Queues