Industry

Number portability is a distributed systems problem

Why the number you dial is not the operator you reach

GT Glovox Telecom 1 min read

For most of telephony's history, a number prefix told you which operator held the subscriber. Portability ended that, and a surprising amount of routing logic has not caught up.

The stale-data failure

Routing on a prefix table that has not been refreshed sends the call to the original operator, who must then transit it to the current one. Sometimes that works and costs more than it should. Sometimes it fails in a way that looks like an unreachable subscriber.

Query, do not assume

A live lookup returns the operator that holds the number right now. It costs a few milliseconds and it removes an entire class of misrouting. For high-volume outbound it pays for itself immediately: routing to the correct operator directly is almost always cheaper than transiting.

The caching question

Portability events are rare per number but constant in aggregate. We cache lookups for 24 hours, which captures nearly all the benefit while bounding staleness to a day. Longer than that and you are back to the original problem, slowly.