@ADA4Good @Ruslan_Sendecky I think a few important things are missing from the above discussion. The following is my understanding of it, correct me if I’m wrong.
The first important thing: the global topology.json (if you mean https://explorer.mainnet.cardano.org/relays/topology.json) and topology updater are two independent things!
topology.json is extracted purely from blockchain and updated on regular intervals (and I think it also regularly checks if the listed nodes are reachable and omits them if not, not sure about this though). As a consequence, this file only contains the public relays. Pools can also have private relays that are not registered on the blockchain (this is a good thing, because they can be helpful in case of a direct attack on a specific pool; the attacker wouldn’t know that the pool still is connected to the network after successfully attacking and bringing down its public relays).
Then the need for topology updater. Until peer-to-peer is live, nodes need to have a static topology file configured. How they make it and which relays are added is entirely up to them. They could just (randomly) select some relays from the global topology.json, add the relays from some (reliable) friends or use a service to provide a list of relays. Of course your own other relays en BP should also be added.
Topology updater is one of this services. Then there’s the question of why using a service and not just selecting some relays from the global file?
The first and most importing reason: blocks are pulled from other nodes (and not pushed). So you need incoming connections or your blocks won’t propagate! With topology updater you list your relays and you get other relays. The service makes sure every listed relay will be given enough other relays, so you will get those incoming connections (with just randomly selecting from the main file this would be much less the case).
Secondly, topology updater factors in location so that everyone gets a good mix of nearby and faraway relays, so blocks and transactions will propagate fast around the world. It would be a lot more complicated (and unnecessary) to run such logic on your own.
Also, every hour you have to send an update with your current tip to make sure only up to date relays are listed and propagated to others. After you miss a couple updates, you get delisted until you have a couple successful updates in a row again. This also makes it very easy to add a new relay and get incoming connections to it rather quickly.
You can also list private relays with topology updater, because it’s independent from the main topology file. With only the main topology file, those relays wouldn’t get incoming connections unless some other relays add them manually.
Note that topology updater is a centralised part, but this is a temporary measure until peer-to-peer is live. It’s also not developed by IOG, but by someone from the community. You’re free to use it or not, and I think there’re other services too.