title: “Chrome Content Optimization Service Runs on Go” company: Chrome logoSrc: chrome.svg logoSrcDark: chrome.svg heroImgSrc: go_chrome_case_study.png series: Case Studies quote: | Google Chrome is a more simple, secure, and faster web browser than ever, with Google's smarts built-in.

In this case study, the Chrome Optimization Guide team shared how they experimented with Go, ramped up quickly, and their plans to use Go going forward.

When the product Chrome comes to mind, you probably think solely of the user-installed browser. But behind the scenes, Chrome has an extensive fleet of backends. Among these is the Chrome Optimization Guide service. This service forms an important basis for Chrome's user experience strategy, operating in the critical path for users, and is implemented in Go.

The Chrome Optimization Guide service is designed to bring the power of Google to Chrome by providing hints to the installed browser about what optimizations may be performed on a page load, as well as when they can be applied most effectively. It comprises a conjunction of real-time servers and batch logs analysis.

All Lite mode users of Chrome receive data via the service through the following mechanisms: a data blob push that provides hints for well-known sites in their geography, a check-in to Google servers to retrieve hints for hosts that the specific user visits often, and on demand for page loads for which a hint is not already on the device. Were the Chrome Optimization Guide service to suddenly disappear, users might notice a dramatic change in the speed of their page loads and the amount of data consumed while browsing the web.

{{backgroundquote author: Sophie Chang title: Software Engineer quote: | Given that Go was a success for us, we plan to continue to use it where appropriate}}

When the Chrome engineering team started building the service, only a few members had comfort with Go. Most of the team was more familiar with C++, but they found the complex boilerplate required to stand up a C++ server to be too much. The team shared that “[they] were pretty motivated to learn Go due to its simplicity, fast ramp-up, and ecosystem.” and that “[their] sense of adventure was rewarded.” Millions of users rely on this service to make their Chrome experience better, and choosing Go was no small decision. After their experience so far, the team also shared that “given that Go was a success for us, we plan to continue to use it where appropriate.”

In addition to the Chrome Optimization Guide team, engineering teams across Google have adopted Go in their development process. Read about how the Core Data Solutions and Firebase Hosting teams use Go to build fast, reliable, and efficient software at scale.

Editorial note: The Go team would like to thank Sophie Chang for her contributions to this story.