Assume we have ADU 1M and 10 write per day and 100 read per day
Assume each tasks should be less than 1MB, we can have 3.6 PB data each year
task(task_id
execution(execution_id
# execution_status can be: new, in-progress, success, non-retriable_error, retriable_error
task 1 ... n execution
The whoe system contains several parts:
The whoe system contains several parts:
Any task execution can failed in the task executor worker for any reasons: out of power, network outage, out of CPU/memory resource. The task executor service will watch each execution and add it back the message queue if it is failed but still retriable.
The bottlenecks can be:
With higher traffic, we need to
Add monitoring and alerting on the executoin failure
The execution result can be stored a nosql or even blob store and then store a link in db
We can add a redis cache for readTask API