Rate limiting is the way to control the number of Reservations, created for a Worker. It is an important feature to have in order to achieve realistic BPM software. Rate limiting also allows process management systems to specify how many Reservations can be created at a given time. For example, you are using a particular service’s API that is configured to allow 12 Reservations per hour. It means a Worker can be reserved in 5 minutes to handle the assigned tasks. If the Worker accomplishes its assigned Task earlier than the specified time, Worker waits until the rate limit constraint allows. Worker’s workloads are guaranteed by setting a Rate Limit that is defined in the Reservation/Hour format.
The reason behind implementing rate limits is to allow for better management of the resources (Workers) of the system. Similar Workers are categorized in one class by definition of Rate Limit Profile to constraint consumption pace of Tasks. Grouping similar Workers in one profile enables the system to update on-the-fly (real-time) the desired action for all Workers of that profile. Thus a more realistic BPM software is achieved.
When the Reservations per hour value is updated, profile status for all the workers with that RateLimitProfile will be modified immediately by the new value. When a RateLimitProfile is deleted, Reservation status for all the Workers with that RateLimitProfile has no limits.
Utilizing Rate Limit Profiles enables the process management systems to:
- Change the pace of Task consumption
- Enforce quotas on limited resources and budgets to manage them efficiently
- Prevent bottlenecks on application side
Suppose in the healthcare field, a blood sampling centre in a hospital has a set rate limit profile for all nurses in the clinic laboratory. According to the reservations created for all nurses, they are allowed to do 10 and 5 sampling processes per hour in the morning and afternoon session, respectively. Halving nurses workload be possible by just updating a single Rate Limit Profile.