whatisgithub

What is ribbon?

netflix/ribbon — explained in plain English

Analysis updated 2026-06-26

4,618JavaAudience · developerComplexity · 3/5Setup · moderate

In one sentence

Java library by Netflix for client-side load balancing and fault-tolerant communication between cloud services. Routes requests across multiple server copies and retries on failure automatically. Currently in maintenance mode.

Mindmap

mindmap
  root((Ribbon))
    What it does
      Client side load balancing
      Fault tolerance
      Request retry
    Protocols
      HTTP
      TCP
      UDP
    Key Features
      Eureka integration
      Dynamic service discovery
      Multiple modules
    Audience
      Java developers
      Microservices teams
    Status
      Maintenance mode
      Netflix internal use
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Add client-side load balancing to Java microservices so requests spread automatically across multiple running instances

USE CASE 2

Automatically retry failed HTTP requests against a different healthy server without writing custom retry logic

USE CASE 3

Integrate with Netflix Eureka to dynamically discover available service instances as they come up or go down

USE CASE 4

Combine Ribbon modules to support HTTP, TCP, or UDP communication in a distributed Java backend

What is it built with?

JavaMavenNetflix Eureka

How does it compare?

netflix/ribbongabrielemariotti/cardslibredspider1/concurrent
Stars4,6184,6214,615
LanguageJavaJavaJava
Setup difficultymoderatehardeasy
Complexity3/53/51/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Add via Maven dependency, note that Ribbon is in maintenance mode and Netflix recommends gRPC for new projects, evaluate whether a newer alternative fits better.

License type is not specified in the explanation.

So what is it?

Ribbon is a Java library built by Netflix for handling communication between software services running in the cloud. When you have multiple copies of a service running at the same time (to handle more traffic or to stay available if one copy fails), Ribbon helps route requests across those copies automatically. This kind of routing is called load balancing, and Ribbon does it on the client side, meaning the code making the request decides which server to talk to rather than relying on a separate intermediary. Beyond load balancing, Ribbon provides fault tolerance, which means it can retry a request against a different server if one fails. It also supports multiple communication protocols including HTTP, TCP, and UDP. An optional integration with Netflix Eureka (a separate Netflix open-source tool) allows Ribbon to automatically discover which servers are currently available, so the list of targets stays up to date without manual configuration. The library is organized into several modules you can mix and match. There is a core module for configuration, a load-balancer module, a transport module for network communication, and example code to show how things fit together. A deprecated HTTP client module is also present but has been superseded by the main ribbon module. It is worth noting that Netflix has placed Ribbon in maintenance mode. The README explains that internally Netflix moved toward a different architecture and is now building on gRPC, a different communication framework that supports multiple programming languages. Core parts of Ribbon are still running in Netflix's production systems, but the team is not actively adding new features to the open-source version. Pull requests from outside contributors are still reviewed and accepted. Ribbon is aimed at Java developers building distributed backend systems, particularly those already using other Netflix open-source tools like Eureka or Hystrix. The setup involves adding a Maven dependency. Code examples in the README show how to make HTTP calls with built-in retry logic and how to set up a dynamic load balancer connected to a service discovery system.

Copy-paste prompts

Prompt 1
Show me how to add Netflix Ribbon to a Maven project and configure it to load balance HTTP requests across a list of server URLs
Prompt 2
How do I set up Ribbon with Netflix Eureka for automatic service discovery in a Java microservices application?
Prompt 3
Write Java code using Ribbon to make an HTTP GET request with built-in retry logic that falls over to a different server on failure
Prompt 4
What Maven dependencies do I need for a basic Ribbon load-balanced HTTP client, and what does a minimal configuration look like?
Prompt 5
How do I configure Ribbon to use a custom load balancing rule instead of the default round-robin strategy?

Frequently asked questions

What is ribbon?

Java library by Netflix for client-side load balancing and fault-tolerant communication between cloud services. Routes requests across multiple server copies and retries on failure automatically. Currently in maintenance mode.

What language is ribbon written in?

Mainly Java. The stack also includes Java, Maven, Netflix Eureka.

What license does ribbon use?

License type is not specified in the explanation.

How hard is ribbon to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is ribbon for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.