3 ms·
In a complex workflow that has queues acting as buffers for work items between processes, the intermediate queue sizes depends on the turnaround time promised t
by vivegi 4y ago
In a complex workflow that has queues acting as buffers for work items between processes, the intermediate queue sizes depends on the turnaround time promised to the end-customer (which is another way of saying rate of customer demand).
If overall customer demand is x widgets per unit of time, if you design your system to process y widgets per unit of time, you will have overprovisioning (and hence impact to profits) if y >> x (y very large relative to x). As a corollary, if you design your system where y < x (y smaller than x), then you will not meet SLAs for some customers.
This analysis can be done at each subsystem level that is a component workflow and in reality some subsystems may be overprovisioned while some are underprovisioned. The goal should be to match the overall rate of customer demand.
You also design the system to handle a certain level of spike in demand, but the system will fail when demand exceeds capacity. When that happens, you want one place where you want to manage flow and invariably that will be a critical queue.