ZOOM SYSTEM DESIGN-MOST FREQUENTLY ASKED QUESTION IN INTERVIEW.

Himani Shaik
5 min readAug 1, 2020

--

This Article is written based on “CODEKARLE” System Design Series.

When people are not at same location or a place and they need to have face to face communication regarding a business meeting, or an organization meeting, and many more, then solution for this is to have a video conferencing. Now-a-days all of us very familiar with “ZOOM PLATAFORM”, the most easy and reliable cloud platform of audio and video conferencing. But have you ever thought of how Zoom App works?

In this article let’s see the architecture and how zoom app works??

First let us see the functional and non-functional requirements.

FUNCTIONAL REQUIREMENTS:

1.One to one call

Platform should support one to one call.

2.Group video calling

Platform should support group video call so that many people can interact with each other.

3. Audio/Video/Screen share

Platform should support audio so that the speaker’s voice is audible to the members in the call, should support video, able to share the screen.

4.Record the video

Platform should be able to record the video call so that user can view the video later.

NON-FUNCTIONAL REQUIREMENTS:

1.Superfast

Platform should be superfast.

2.High availability

System should have high availability.

3.Data loss

Now let us see how client application talks to the server.

There are two ways:

(OR)

Web-socket passes the message between the client and the server. A web-socket is a connection between user and server. It is bidirectional. It provides a communication channel over HTTP through TCP.

TCP stands for Transmission Control Protocol.

TCP allows a device with other device to communicate through compiling packets of data and sending that data to correct location.

How does TCP work?

How does data flow happens?

Data flow happens through packets.

Packet is the basic unit of communication via TCP network. It is the small amount of data through a small network.

USES OF TCP:

1. Reliability

2. Automatically avoid congestion.

TCP — used for traffic that you need all the data for. i.e., HTML, pictures, etc. UDP — used for traffic that doesn’t suffer much if a packet is dropped, i.e. video & voice streaming, some data channels of online games, etc.

In zoom we use UDP.

UDP stands for User Datagram Protocol.

UDP is a connectionless communication protocol.

The main advantage of UDP is it works faster than the TCP. And disadvantage is that the order of packets will be missing.

VIDEO CONFERENCING ARCHEITURE ALONG WITH CHAT:

WEBSOCKET HANDLER:

Web-socket passes the message between the client and the server. A web-socket is a connection between user and server. It is bidirectional. It provides a communication channel over HTTP through TCP.

CONNECTION STUN SERVER:

STUN stand for Session Traversal Utilities for NAT.

STUN server allows the users to identify the IP address and setup the UDP communication between client and server.

CALL SERVER TURN:

TURN stands for Traversal Using Relays around NAT.

TURN Server allows users to send the data and receive the data by an intermediator server. The TURN protocol is extension to the STUN.

WEB SOCKET MANAGER:

Web-socket manager manages web-socket connection with server as well as for sending and receiving data on the connection.

SIGNALING SERVICE:

Signaling service allows one client to call the other client. The signaling severs notifies client that someone want to connect a call with him/her where he/she can accept or decline.

TRANSCODING SERVICE:

Transcoding services are commonly used for adapting content for mobile devices or serving video.

LOGGER SERVICE:

Logger service has many files which have been repeatedly created and kept by a server which has activity list which it has done.

REDIS:

REDIS is mainly used for caching.

It is used for implementing extremely available in-memory cache to reduce data access latency.

USER SERVICE:

User service provides the user to login or logout i.e. about the user using the services.

DISTRIBUTED FILE SYSTEM:

Distributed file system is a file system which can store the data permanently and access files among client and server. In this system many servers store their files that can be accessed.

KAFKA:

Apache Kafka is an open-source stream-processing software platform developed by the Apache Software Foundation. It is the messaging system that sends messages between processes, applications, and servers.

NOW LET US SEE HOW THIS HAPPENS IN THE LIVE BROADCAST

Imagine that a big event conference is happening where many user will be there. Then there will be many numbers of input from each person.

Here input manager manages to collect all the input from the users and sends to the call server. Call server forwards that to different transcoders. Transcoder transcodes the output format and sends the output to different set of call servers. Call serves send the output to the different types of devices by disturbing lot of geographies (simply call servers will get multiple call servers).And individual call server talks to one type of user (like laptop).

And this is all about video conferencing design system.

And all this is written based on CODEKARLE, system design series channel and video is attached below:

zoom system design by CODEKARLE

--

--