ImageProcessor
For building and compiling this application
You can checkout he respective READMEs
Design
External
The API Pods will send messages via RMQ in the format of a Task
The RMQ message must have the ReplyTo field set so that the image processor can know where to send the result back to.
The result payload will be in the structure of a Result
Internal
- We receive an event from RMQ.
- We download the file from S3 and store it in a working dir in a tempfs.
- We extract the frames from the file.
- We resize the frames and correct aspect ratio.
- We create the final outputs, avif, webp, gif + static versions.
- We zip all the contents of the working dir (except the original upload + extracted frames)
- We upload the results and the zip to S3.
- We respond to the initial event from RMQ.