'What is an efficient file-upload solution using Quarkus?

I have three services (A, B, C). The order of which they communicate is A -> B -> C.

Given that I have a large file that I need to upload, what is an efficient solution using Quarkus? I am currently using Quarkus 2.7.4.

The solution that I currently have is using HTTP and multi-part. And the solution will do the job but it is not efficient enough.

Serialized example

As depicted above, the total time it will take for the file to arrive at service C is the time of the upload to Service A, plus the transfer to Serivice B and Service C. I am aware that I can improve the time of the response to the Actor by sending the response when Service A has received the file, but that only solves one part of the puzzle.

The picture below is what I had in mind when I first started.

Paralell example

Where as soon as the file starts to upload Service A starts to process it, by streaming it to Service B and so on. What I however seem to miss or fail with is if the parallel/streaming example above is something that can be achieved. I have been iterating over several guides that are provided by quarkus but without any luck.

Note: I am not bound to HTTP, so any suggestions are welcome.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source