In any system, any process, any pipeline, any dataflow, there is always a next bottleneck. Once you identify an aspect of your environment that slows things down, then take a corrective action to make that thing better, something else takes its place.
The lean manufacturing folks understand this exceptionally well. They sometimes have tangible clues like a pile of physical objects backing up on a production line. It’s the same in a technology stack, but more subtle.
The interesting questions are:
- Can we find the next bottleneck?
- Do we know what we might do to reduce or remove the impact of the next bottleneck?
- It is worth addressing that next bottleneck from a cost, complexity, or (most importantly) end-user perspective?
Bonus observation: there’s always a temptation to assign initial blame for a technical bottleneck to “the network”. In my experience, networking isn’t the most common bottleneck, at least to start. Network people seem to like it when I say this.
My favorite opening performance suspect is storage latency.