In previous articles, we’ve explained why Go is a fantastic programming language, useful especially for apps with microservices and handling many network requests. We also mentioned that it’s a popular choice for streaming platforms, as well as the social media and finance sectors. Now, let’s take a close look at Go use cases at major companies like Netflix, Uber, and Twitch.
To learn more about Go and its capabilities, read our blog post on why Go is so good at what it does.
Netflix - scaling a streaming platform with Go
As a platform handling the transfer of large volumes of data, one of the major challenges Netflix faces is scalability. Go can help with that, with the added benefits of efficient data processing and server loading optimization. How does it work?
Go supports background loading that doesn’t disrupt other processes, because data (from multiple sources) can be stored and refreshed in the background. Go also processes data very quickly - about eight times faster than Node.js, if we compare raw performance. Golang’s garbage collector allows for latency as low as 1ms.
Netflix also uses Rend, a memcached proxy and server written in Go, without external dependencies. They built it because they needed better performance than what they could achieve with Java. Thanks to Go’s memory model, which is simple and direct, garbage collection can be fast, too. Go was easy to learn and adopt, and so efficient that Netflix ended up rewriting some of their codebase using Golang.
Uber - handling large network traffic with high availability
At Uber, Golang helps with handling a huge number of concurrent requests to the company’s world map, and provides lightning quick responses. A microservice for geofence lookups, written in Go, is the highest queried per second service at Uber. It allows users to see what products are available in which area, helps define areas with special requirements (e.g. airports), and supports dynamic pricing. By building a microservice-focused architecture and using Go’s capabilities, Uber was able to combine multiple services and modules into one microservice - and a very reliable one. It’s been running for 99.99% of the time since its launch, and the minimal downtime was caused by third-party libraries.
Twitch - improving chat and video streaming performance
The Twitch team appreciates Go for its simplicity, readability and incredible performance. It helps them solve problems specific to live video streaming and live chat with millions of users. They are also very happy with the continuous improvement provided by the Go development team, as its helped them reduce costs, manage chat traffic, and improve service reliability.
Medium.com - handling a graph database for a major publishing platform
Medium’s Neo4j graph database, which stores social data about their users, posts and collections, is managed by a service written in Go. They’ve dubbed it GoSocial, and it helps them achieve improved performance without sacrificing ease of use. Thanks to Go’s built-in concurrency, large queries can be broken down into smaller ones that can then run parallel to each other, thus achieving results faster.
Go also provides a native HTTP package and doesn’t require additional frameworks, which helps in keeping the codebase clutter-free. As an opinionated language, Go supports team cooperation and improves code readability by requiring a similar approach from all developers working on a project. In some cases, it might make it easier for less experienced developers to feel confident about their work.
Zalando - building new ecommerce services with Go
Zalando has decided to build new services with Go. One of their early experiences with the language was creating Skipper, a HTTP routing solution. Its goal was to help rebuild the infrastructure behind the company’s Fashion Store, and it does so while providing satisfying performance at scale, supporting detailed request matching during route selection, and allowing for continuous reconfiguration of the routing table for new settings.
Walmart - creating a homegrown CDN using Go
The Edge platform team at Walmart Labs uses Go in three major projects:
- a reverse proxy for asset and page optimization,
- a homegrown CDN,
- a RAM system.
Their Go implementation is spread out across the world, supporting Asda, Walmart Brazil, Walmart Canada, Sam’s Club, Walmart US, Walmart Mexico, and so on. They are using the language on a large scale, and are clearly happy with the results - especially since they can keep their team lean.
SoundCloud - making problem solving simple and improving efficiency
SoundCloud uses Go along with Ruby on Rails. They appreciate Go’s “one problem, one solution” philosophy, which can make problem solving simpler. They use the language’s capabilities for real time static analysis to improve their team’s efficiency. Go’s engineers call it a WYSIWYG language, which means that its code does exactly what it says, making maintenance much easier. Fast builds, fast tests, fast peer-reviews and fast deployment allows the SoundCloud team to get things done very quickly.
Using Go at your organization
As you can see, Golang offers a wide variety of benefits for different types of companies. It’s a highly performant language with a philosophy that allows for a fast, lean approach with little redundancy. If you’re not sure whether your business can benefit from using Go, we’d be happy to help you find out.
Improve your efficiency, reliability and scalability with Go.
Work with experienced Go developers who have delivered successful projects.