Netflix Uses Golang For Rend Proxy
Before we start with the understanding of how Netflix is using Golang, let us understand what is Netflix and Rend Proxy in Netflix.
What is Netflix?
An American production company that provides technology and media services. Founded in 1997 by Reed Hastings and Marc Randolph. The primary business of Netflix is to provide streaming services that are subscription-based.
What is Rend Proxy?
Rend and Mnemonic are two new processes to the EVCache server introduced by the Moneta project. Currently, Rend is in production at Netflix and is helping by serving live members' traffic. Rend is a Memcached-Compatible Server and Proxy. Rend Proxy is developed by Netflix. The primary use case of Rend proxy is to be on a server where both the Memcached process and SSD-backed L2 cache is present. The project is open-source and available on Github
As per the Netflix Tech Blog Rend is:-
It is a high-performance server that speaks the binary and text Memcached protocols. It is written in Go and relies heavily on goroutines and other language primitives to handle concurrency.
Rend Proxy is written in Golang and is actively developed at Netflix. Rend Proxy is developed for:-
1 To handle tens of thousands of concurrent connections
2 It has client packages such as load testing and correctness testing.
3 The design is modular, which provides flexibility for replacing different pieces
Components of Rend Proxy:-
Rend is servers as well as it is has a set of libraries using which you can build your own Memcached-compatible server.
Components in Rend Proxy:-
- Servier Loop Package
- Protocol Parsing Package
- Request Orchestration Package
- Backend Handlers Package
- Metrics library
In Rend as a server, Memproxy.go file act as the main function and showcases the usage of all the above-mentioned component.
To build Rend, a working Golang distribution is required. Rend is developed using the latest Golang version.
Rend has a separate client library under the client directory which is used to do load testing and functional testing of Rend during development.
Rend Libraries:-
- blast.go - Sends random requests of all types to the target
- setget.go - Run sets followed by gets, with verification of contents.
- sizes.go - Runs sets of a steadily increasing size to catch errors with specific size data.
- fill.go - Sends sets into the cache to test set rate and eviction policy.
- setops.go - Sends all different kinds of set operations at the target
Netflix Teams said:
The decision to use Go was deliberate, because we needed something that had lower latency than Java (where garbage collection pauses are an issue) and is more productive for developers than C, while also handling tens of thousands of client connections. Go fits this space well.
Read more about the article from the original source here
You can also read more articles about Golang here-
- Salesforce Switched from Python to Golang for Einstein Analytics
- Golang at PayPal For Modernizing And Scaling
- Why American Express Uses Golang?
- Stream Switched From Python To Golang
- Uber Engineered Highest Query Per Second Using Golang
- How a Company Reduced its number of Server from 30 to 2 Using Golang
- Get to know How Golang is used at CockroachDB
- Get to Know How Golang is contributing to Bitly
- Things You Need to Know About Golang For Web Development
- Here Is Why Golang Is One Of The Preferred Technology For Your Project
- Some Interesting Facts and Takeaways from Golang Survey
?Author: Reemi Shirsath COO @ Scalent.io - A Golang Specialized Development Company.
Scrum Master Corretora de Seguros Santander - Open PF - F1RST
4 年Thank you
Senior Software Engineer at Nubank
4 年Alexandre Siqueira .. benchmark job R.
CIB, Markets Technology, Market Risk, VaR, Cloud Architect, Artificial Intelligence and Data Engineering,
4 年What are the advantages in writing backend in Go instead of java?
My Expertise includes:- Accounts Manager/ BDM/ Pre Sales/ Inside-Sales/ Marketing - USA/EMEA/APAC markets.
4 年Golang is best, guys any body need IT Services please contact me at [email protected]/+1(332)600-4985,Thanks
Co-Founder / CTO at DAAM Agency
4 年Did you know Netflix supports pedophilia. Search "Netflix Cuties" #CancelNetflix