Zoom API Design Decisions

Let's understand the workflow and design considerations of a multicast service like Zoom.

In the previous lesson, we learned about some technical concepts necessary for creating a video-conferencing API from a networking perspective. Now let's dig a little deeper into the end-to-end architecture of the system. We’ll use our understanding of the architecture to decide on different API design aspects.

Design overview

The architecture of a fully-fledged Zoom application is complex and beyond the scope of this lesson. However, we have simplified it to meet our functional requirements and will discuss only the unique aspect of the service—live video conferencing. Let's consider the following architectural design diagram to understand the services and components required for the Zoom meeting API:

Press + to interact
The architecture of the Zoom meeting system
The architecture of the Zoom meeting system

Note: In the illustration above, the /streams path bypasses the API gateway. The media controller acts as a gateway for requests associated with media streams.

The following table briefly describes the functionality of important services and components of the above architecture, in order from specific to general.

Components and Services Details

Component or Service

Details


Meeting service

Handles requests such as:

  • Creating meeting link
  • Inviting participants
  • Deleting or updating scheduled events


Media controller (MC)

Manages requests such as:

  • Redirecting participants to the appropriate media router
  • Creating waiting rooms
  • Setup different configurations on media routers

Media router (MR)

Facilitates audio/video transfers within a geographic location

Recording service

Facilitates storing live streams to blob storage


Pub-sub service

Handles different events such as:

  • Notify participants when recording in progress
  • Notify participants when the time limit is reached
  • Notify the host when a guest user requests access

Database

Stores user and meeting related metadata

Blob storage

Stores media files such as different audio/video conferences

Workflow

We can divide the workflow of the Zoom API into the following two main functions:

  • Managing Meetings: Users can initiate, update, delete, and schedule audio/video conferences by sending appropriate requests to the meeting service, which then updates the database and queues requests to the pub-sub service to notify the user’s calendar application for scheduled or recurring meetings. Users must be authenticated before performing the aforementioned tasks. ...