We recently got a problem statement from one of our clients. They have an education platform for which they are using Zoom to provide online tutoring and are availing the Zoom recording to students once the session is over.
They started with few institutes, but as the business grew up, there were few things that they had to consider.
The platform is providing two types of services:
So let’s say 1 student takes 10 hours of sessions daily.
For a month it is 300 hours (10×30)
One hour zoom recording is approximately 300MB
So 300 hours of recording is 90,000MB.
ie ~ 100GB storage / month / student
Or ~ 1200GB storage / year / student
Now let’s assume each session can have around 100 students
So total storage is 12,000GB / year / class
ie. 12TB / year / class
Last but not the least, we can have multiple classes.
For the problem statement, we came to a solution to have our own storage (it could be AWS S3 or DigitalOcean Spaces Object Storage) and stream the recordings from there itself.
So, the next question is how we are going to move the recording from zoom storage? And this is not a single time migration, we need to move the recordings after each session/class.
So, the desired solution was a microservice that will be responsible for migrating each and every recording as soon as it is available at the zoom storage.
Here is the high-level architecture of the flow.
The workflow will be as