This repository refers to the freeCodeCamp.org hands-on tutorial about microservices architecture and distributed systems using Python, Kubernetes, RabbitMQ, MongoDB, and MySQL.
Watch the YouTube video for more information.
- User
uploads videoto be converted to mp3 - The request will first hit our
API Gateway - The Gateway will
store the video in mongoDBandput a message in the queue (RabbitMQ)letting downstream services that there is a video to be processed in mongoDB - The
video_to_mp3converter service will consume messages from the queue. It will then
- get the ID of the video from the message
- pull that video from mongoDB
- convert to mp3
- store the mp3 on mongoDB
- put a new message on the Queue to be consumed by the notification service that says "the conversion job is done"
- The notification service consumes those messages from the queue and sends an email notification to the client informing the client that the mp3 for the video that he/she uploaded is "ready for download"
- The client will use a
unique IDacquired from the notification + his/herJWTto make a request to the API Gateway to download the mp3 - The API Gateway will pull the mp3 from mongoDB and serve it to the client