Zoom API Design Decisions
Let's understand the workflow and design considerations of a multicast service like Zoom.
We'll cover the following...
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:
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:
|
Media controller (MC) | Manages requests such as:
|
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:
|
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. ...