Weighted load balancing has saved me more times than I can count.
Many engineers think of load balancers as simple traffic distributors.
Send requests across servers. Keep systems available. Move on.
But one of their most valuable capabilities is often overlooked. Weighted load balancing.
🤨 What Is Weighted Load Balancing?
From enterprise hardware appliances to software load balancers like HAProxy and Envoy Proxy, nearly all modern load balancers support some form of weighted routing.
Start with a standard balancing algorithm, such as round-robin. Then apply weights so some targets receive more traffic than others.
For example, if two targets are weighted at 90 and 10, roughly 90% of traffic goes to one target and 10% to the other. If targets have equal weights, traffic is typically distributed evenly.
Simple idea, critical feature.
🤔 Why It Matters
Weighted load balancing turns migrations from risky big-bang cutovers into small, adjustable dials.
Instead of flipping traffic all at once, you can gradually shift production traffic while observing behavior in real time.
That means a smaller blast radius, easier rollbacks, and safer production migrations.
🧰 What I Actually Use It For
I’ve rarely used weighted load balancing because one server had more capacity than another.
What I’ve used it for repeatedly is change management.
Ten years ago, to migrate from a legacy file transfer platform to newer platforms. We used weighted load balancing to introduce the new platform gradually.
Six years ago, to control which transactions were routed to our old card payments platform versus the new platform, we introduced weighted load balancing in our global transaction router.
Last night, to run a canary deployment, we adjusted our service mesh using weighted routing via xDS.
Different eras, different platforms, same core concept.
🕰️ Standing the Test of Time
Weighted load balancing is not new. It has existed for a long time.
Foundational patterns often become the enablers for newer platform practices. Canary releases, blue/green deployments, service mesh traffic shifting.
Many of those ideas rely on the same underlying capability: controlling traffic through percentages and weighting.
Good patterns tend to survive generations of technology.
🧠 Final Thoughts
Many software engineers will never build a load balancer. They will never configure one themselves.
But understanding what these systems can do is still an advantage.
Because migrations are often less about code and more about traffic control.
Writing good software isn’t enough. Knowing when and how to shift 1% of traffic can make or break a migration.