Question :
Design an online file execution Service :
Requirements :
a) No of users : 10, 000
b) User can upload a executable file to the system.(eg, .exe files)
b) File size can be very huge( file size: 5~6GB)
c) User can also provide a timestamp for the file telling the system when it has to be executed.
d) User can also tell the system to execute the file as a cronjob (periodically)
e) User should also be able to upload file even after the internet is slow or down.
f) User must have an isolated space created by the system where the file has to be executed.
I get that part where user can upload a huge file to a file server but still i am confused how many database i will require for this particular system
1 Metadata db for storing chunks info
2. Object storage for storing the file chunks.
I may have also used Kafka for aggregating all the chunks to temporary file location which can be accessed by Executor Service
to execute. It can process chunks metadata info in the correct order and at the required time stamp and keep it in an isolated space and later feed to executor service for execution.
We can also have a notification service when the execution is completed.
Please help me to figure how this particular system can be designed.I still got no clue how userspace will be created mentioned above.
Thanks in Advance !!