Requirements of Zoom System Design
1.1 Functional Requirements of Zoom System Design
- One-to-one calling feature: The Platform should support if one person is making a call to another person.
- Support Group video calling: The Platform should support group video calls so that a group of people can come together on a group video call or an audio call and should be able to view other’s screens or anything.
- Audio/Video/Screen share: The Platform should support calls that may be audio calls or video calls, and people would also be allowed to do a screen share. Here, video and screen sharing are the same thing which are fundamentally implemented in the same way. It is just a stream of video content whose input sources are now different.
- Recording the video: The Platform could be able to record the video call so that the record will be available to users so that they could look at it afterward.
1.2 Non-Functional Requirements of Zoom System Design
- Super Fast(High Latency): Platforms have to be super fast. Here low latency would not be good enough. Generally, systems like YouTube have low latency, and the video can be buffered on poor connectivity, it is accepted there. But on video calls you can’t have a lag which results in a bad user experience and users don’t like this
- High availability: The system should be highly available. In terms of hardware, it should be fault tolerant and also distributed geographically, to provide low latency and more durability.
- Data loss: In some cases, data loss is accepted. When we are watching any video if we miss a couple of frames of the video, generally we don’t realize it. Especially in the case of a video call even if a few frames are missed it doesn’t make much difference.
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?