Open In App

Designing Zoom | System Design

Creating an app like Zoom may seem simple from the user’s perspective, but in reality, it’s a complex task involving hundreds of software engineers working for years. Zoom, like other similar apps, requires careful planning and design to provide seamless video conferencing services worldwide. This article explains how Zoom works and how it handles a lot of cases.



1. Requirements of Zoom System Design

1.1 Functional Requirements of Zoom System Design

1.2 Non-Functional Requirements of Zoom System Design

2. Capacity Estimation

Let’s assume we have 1 billion users. Assuming 1 billion users with 100 million group video calls daily, the Zoom App needs to handle approximately 58,000 requests per second to provide a scalable backend.



3. High-Level Design of Zoom System Design

At the heart of Zoom’s success is its robust infrastructure, which includes key features like Zoom clients, distributed data centers, web infrastructure, and new technologies like HTTP tunnels Let’s explore how each feature has contributed to Zoom’s impressive growth and we have overcome the challenges.

Zoom Client

The Zoom client acts as a gateway for users to access virtual sessions. Its ease of use and easy integration across devices has made it a favorite of millions of users around the world. With the rise of remote work the Zoom client played a key role in ensuring seamless communication even in bandwidth restricted environments.

Distributed data centers

Zoom’s distributed data centers form the backbone of its business, handling the processing and storage of large volumes of conference data This decentralized approach not only ensures scalability but drives reliability higher by the risk of termination. As demand increased, Zoom rapidly scaled its data center infrastructure to accommodate users, thus maintaining optimal performance.

Web design

The Zoom web design supports its client application, providing users with a consistent experience across browsers. This allows participants to seamlessly participate in sessions without having to download additional software. Due to increased demand, Zoom beefed up its network infrastructure to handle the increased traffic, providing unfettered access to its users worldwide .

HTTP Tunnel

To handle firewall and proxy restrictions, Zoom uses the HTTP tunneling mechanism, which binds Zoom traffic in HTTP requests and responses. This allows users to interact with Zoom sessions even in a limited web environment.

3.1 How does Data Flow in the zoom client happens?

TCP

In TCP, everything is in the form of packets. Information packets are sent from client to server.

Here in our case, TCP is bad suggestion for Zoom.

Let us see why?

Then, the other best option we have is UDP

UDP

UDP is also a Transport Layer Protocol like TCP. They run at the same layer but they are functionally different. It is an lossy protocol.

Let us see how UDP Works:

Imagine we have a client and it want to send information to server. UDP keeps on sending irrespective to the payload of whether the server is receiving it or not.

For example:

we have packets P1, P2, P3 to send. The client sent P1 and the server received it. Client sends P2, suppose server has not received P2 due to congestion or packet loss or anything, the client doesn’t send P2 again it moves to P3 and suppose server got P3.

TCP vs UDP

Drawbacks of UDP

Note: We will be using TCP for all the communication between a client and a server which does not involve video transfer. Only the video transferring happens then that would happen on UDP.

4. Low-Level Design of Zoom System Design

Let us now discuss about the low-level design of zoom system design

Below is the explanation of the above low-level design image:

When a user, let’s say U1, wants to start a call with another user, U2, the process involves several backend components working together seamlessly.

1. WebSocket Handler

2. WebSocket Manager

3. Signalling Service

4. User Service

5. Connector (STUN Server)

6. Handshake for Connection Details

7. Establishing Peer-to-Peer Connection

8. Fallback to TURN Server

9. Handling Bandwidth Changes

Important Scenarios

  1. Group Conversations:
    • It is Peer-to-peer for small groups, Call Server for large groups. Transcoding for different user bandwidths and codecs. Analytics events logged. Dynamically adjusts bandwidth.
    • The clients can dynamically switch from peer-to-peer to Call Server
  2. Recording:
    • Logger service records chunks of conversation. File created and stored in distributed file systems. Notifications will be received by users with link of recording.
  3. For Live video:
    • Aggregates video and audio inputs from cameras and microphones and transcoders convert input streams for different devices.
    • Call Servers receive the transcoded streams and distribute them via Content Delivery Networks (CDNs) they handle session manangement, user authentication etc.
    • WebSocket Manager Coordinates communication between different Call Servers and manages the WebSocket connections between clients and servers.
    • Provides real time data exchange and provide fault tolerance and load balance to maintain the performance as well.

Here Call Server is close to the users, soo that latency would be minimized. From Call Sever to users, there could be a lot of hops, we want to minimize the number of hops over here because this is where the data is getting replicated multiple times.

5. Microservices used in Zoom System Design

Zoom’s structure has user management service, meeting scheduler service, video streaming services, chat services, record management services, notification services and so on. Some of them are mentioned below:

6. API Design of Zoom System Design

Zoom API provides these set of endpoints:

7. Database Design of Zoom System Design

Zoom uses public clouds like AWS o host metadata of meetings, web applications and other services. It uses AWS for real-time traffic. For educational users zoom expands to Oracle Cloud.

In this Design:

8. How does Zoom handle Scalability?

9. Conclusion

Zoom’s design encompasses numerous components and strategies to ensure seamless, reliable, and scalable video communication services for its extensive user base. Its key focus on efficiency, fault tolerance, and adaptability positions Zoom as a leading platform in modern video conferencing, providing an outstanding communication experience.


Article Tags :