HP INCFollow


It is common for services to bulkhead sets of APIs so that they are ensured a certain number of

resources. This is done to support availability and performance service level agreements for the APIs.

When bulkheading is performed, the resources available to the service are segregated between the

sets of APIs. While this division addresses the availability and performance needs, it restricts critical

APIs to a subset of the total resources available to the service when those resources are not in use

by the other APIs.

What is desired is the bulkheading of resources between critical and non‐critical APIs so that the

non‐critical set of APIs is limited in its use of resources and to support the availability and

performance of the critical set of APIs by using resources from other pools.

This solution is to create resource pools for each set of APIs; in this discussion, there are two pools

(critical and non‐critical). The non‐critical APIs use their resource pool exclusively. The critical APIs

call the non‐critical resource pool with a timeout. If the resource is returned before timing out, that

resource is used. If the request times out, the critical resource pool is called with an infinite timeout,

and the call waits for a free resource.

Creative Commons License

Creative Commons License
This work is licensed under a Creative Commons Attribution-Share Alike 4.0 License.