Challenge Overview
This competition is to design a new Task that can be "plugged into" the Java Batch Job Infrastructure (JBJI), which is provided.
This new Task is a "governor" Task which does nothing but limit the throughput of work in a chained sequences of work Tasks.
For example, the following diagram shows a JBJI-based batch job with three work Tasks:
Now, let’s assume that Work Task B is using a production system that has limited resources. We don’t want this job to overload this system. Therefore, we want to make sure that this batch job only makes X number of requests to this system (as part of Work Task B) per unit time.
The "governor" task would be inserted between Tasks A and B in order to throttle the flow of work to Task B:
In this example, there is a single Governor that throttles the work being given to Task B. Task A is not throttled, but it may happen that it is also eventually blocked by the work queue filling up.
It would be possible to need multiple governor Tasks (configured independently) in a single JBJI batch job.
Final Submission Guidelines
N/A