Design a Slack-Like Chat System

How to Use This Document

This document is structured as a 45-60 minute technical interview script or lecture. It flows from foundational concepts to advanced distributed systems patterns. Each section includes:

  • What to say (the teaching content)
  • What to draw (diagrams to sketch)
  • Key numbers (statistics to cite) …

Design Slack

Problem statement

Design a large chat system for companies, similar to Slack. Notice to limit the scope and choose the most unique and critical components to discuss. Should avoid mention not critical part or the parts that you are not familiar with. Choose a coherent structure to describe. In each section, whenever …

Implement a Web Crawler

Introduction

Design and implement a multithreaded or asynchronous web crawler program that can crawl all web links under the same host starting from a specified URL.

A Blocking Solution

Let’s put aside the topics of efficiency and scalability, focus on the MVP that works. Given a starter url, we will use request …