Hello Tim,
If you decide to rearchitect the design;
I would recommend you consider implementing a claim check pattern.
With this approach, you can send the location of the file instead of the actual video in a claim message. You can implement a video service that rabbit consumers can provide their claim. The video service could allow consumers to stream larger video files.
This approach may be better then splitting the video files, because
- The claim can remain in rabbit until the file is safely transferred by the consumer
- you can track the unclaimed videos in rabbit
- the claim check can use the dead letter approach for missing or invalid claims
- the two previous points can simplify troubleshooting
- you can scale the claim processing among multiple consumers without having to worry about video segments being processed out of order
- the claim check allows you to process 1 file with 1 message (limiting the number of networks calls)
- you can take advantage of protocols that are best suited for streaming larger payloads like videos (ex: using a HTTP based protocol)
- this may allow for lower latency and increased throughput for file transfers overall
Hope this helps,
please excuse any typos
Hi Luke,