Good article explaining why they chose Go instead of node.js, to build their geo location query system.
Some aspects they have highlighted about golang:
- High-throughput and low-latency
- CPU intensive workload
- Non-disruptive background loading, refreshing in-memory, in go they would be able to use goroutines
It also explains how they come up with the solution to make the index of data, instead of use algorithms like R-tree, or S2 They saw that they are city-centric, all the business logic is related to city, so it allows they create two boundaries, one for the city, so first of all they found the city, and second inside the city they found the geolocations.
As they said: “While the runtime complexity of the solution remains O(N), this simple technique reduced N from the order of 10,000s to the order of 100s.”
They end up summarizing their experience with golang:
- High developer productivity (few days to learn language, easy to maintain because static typing)
- High performance in throughput and latency
- Super reliable