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.

  • Let’s say client wanted to send packet-P1 he will do this by saying, I’m sending packet P1, which is one for this kind of communication started and sends it to the server.
  • Server then sends an acknowledgement back to the client saying, I have received P1 packet.
  • Till a fixed point in time, if a client didn’t receive an acknowledgement, client will again sends the same packet P1. And furthermore, the client send the P2,P3… and every packet has 2,3… numbers so that server can understand the order he is receiving.
  • TCP does it’s best to have no data loss happening between client and server.

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

Let us see why?

  • In the non-functional requirements, we are okay with some data loss but we want the communication to be fast. Here in TCP to establish a connection three-way handshake is done and sequencing of packets.
  • The TCP header is nearly 20 bytes. This is a lot of information and we should try to minimize this.
  • Congestion control this would sometimes even slow down sending the packets from the client itself. For video-chat application this will slow down the user experience.

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

  • Reliability: TCP ensures reliable data delivery with error detection, retransmission of lost packets, and in-order delivery. UDP does not guarantee reliability or packet ordering.
  • Connection: TCP establishes a connection before data transfer, ensuring a reliable, bidirectional channel. UDP is connectionless, allowing data to be sent without prior setup.
  • Overhead: TCP has higher overhead due to its reliability features, including acknowledgment packets and flow control mechanisms. UDP has lower overhead since it lacks these features.
  • Congestion Control: TCP includes congestion control mechanisms to prevent network congestion by adjusting data transmission rates. UDP does not have built-in congestion control, leaving it to applications to handle congestion.

Drawbacks of UDP

  • It has a drawback the packets may come out of order. It might happen server might get P3 first and then P1. But in TCP, we can have the packets ordered.
  • But for video conferencing apps it is better to miss couple of frames or reordered than to compromise on fastness.

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.

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.

Important Topics for the Zoom System Design

  • Requirements of Zoom System Design
  • Capacity Estimation
  • High-Level Design of Zoom System Design
  • Low-Level Design of Zoom System Design
  • Microservices used in Zoom System Design
  • API Design of Zoom System Design
  • Database Design of Zoom System Design
  • How Zoom handle Scalability?

Similar Reads

1. Requirements of Zoom System Design

1.1 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....

4. Low-Level Design of Zoom System Design

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

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

...

7. Database Design of Zoom System Design

Zoom’s database design is about user management and recording functionalities. A user table that should store necessary user information, while a separate recording table manages recorded sessions and required information. Permissions are set to record access tables to facilitate user access to recordings....

8. How does Zoom handle Scalability?

Zoom’s architecture distributes meetings across its data center network, allowing users to join meetings via the closest data center, ensuring scalability and a reliable video experience for large gatherings. Unlike legacy systems that rely on resource-intensive Multipoint Control Units (MCUs), Zoom’s multimedia routing delivers multiple video streams directly to clients, reducing computing requirements and enabling scalability for meetings with thousands of participants. Each video stream in Zoom can adjust to multiple resolutions, eliminating the need for separate encoding and decoding processes for each endpoint. This optimization enhances performance and scalability while providing varying levels of video quality based on device capabilities and network conditions. Zoom’s quality-of-service application layer optimizes video, audio, and screen-sharing experiences based on each device’s capabilities and available bandwidth. This proactive approach ensures the best possible user experience across diverse network conditions. With support for distributed architecture and multimedia routing, Zoom can accommodate meetings with thousands of participants, ensuring seamless video and audio communication for large-scale events....

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....