- A toy video to audio converter in microservice architecture deployed using Kubernetes
- All services are written in python.
- Uses Postgres for data storage, MongoDB GridFS for media storage and RabbitMQ as a queue between different services
- For creating user
- Generating and validating JWT token
- Reads new convert requests from rabbit mq and stores audios in MongoDB after converting using ffmpeg.
- Main motive of using rabbit mq here is to make the whole service async in nature as converting is a time taking process, blocking user request till conversion finishes which not a good experience
- So instead of this, we add new conversion request in a
videoqueue and return some sort of acknowledgement to user immediately and later read requests from queue and process those after processing we add event inaudioqueue which will be consumed by emailer service
This service sends a email notification to user as soon as their request is completed
by reading completed events from audio queue
- User facing entry point of the service
- Exposes api:
POST /loginPOST /signupPOST /uploadGET /download?fid='videoid'
