That was when the team realized the missing piece: discoverability for the external load balancer. It wasn’t enough to have rock-solid infrastructure or auto-scaling clusters. If services couldn’t be found, they couldn’t be used. And if they couldn’t be used, everything else fell apart.
An external load balancer is the traffic gateway. It takes requests from the outside world and routes them to the right service inside your architecture. But routing alone isn’t enough—you need discoverability. Without it, endpoints break when services scale. Addresses become stale when containers restart. Requests fail when IPs shift.
Discoverability in this context means that services behind the load balancer are always reachable by a stable, predictable name, no matter how dynamic the underlying infrastructure gets. It means developers can deploy and scale without hardcoding endpoints. It means operations teams don’t have to roll updates at midnight just to keep DNS records fresh.
The best setups bind the external load balancer directly into your service registry or DNS, so external systems and users always have a single entry point. The moment a new version of a service comes online, the load balancer knows and updates its routing table. The moment a node dies, traffic is drained and pushed elsewhere—fast. This removes the manual glue code between deployment events and the load balancer config.