Vinícius Krolow

Let's hurt the code!

Sat, Feb 27, 2016

How uber use Go for geolocation

Topic: go Learning Path: Why use go?

Post: How We Built Uber Engineering’s Highest Query per Second Service Using Go

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
Hey, have you find a typo or english smell? help me improve my english, i'll be glad to receive an improvement here.