netflix/ribbon

Ribbon is a Inter Process Communication (remote procedure calls) library with built in software load balancers. The primary usage model involves REST calls...

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 13 minutes ago
Added to GitGenius on September 15th, 2026
Created on January 15th, 2013
Open Issues & Pull Requests: 217 (+0)
GitHub issues: Enabled
Number of forks: 1,227
Total Stargazers: 4,617 (+0)
Total Subscribers: 660 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 1898.0 days
Mean response time: 1477.7 days
90th percentile: 2535.2 days
Tracked items: 3

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 0
New in 7 days: 0
Closed in 7 days: 0
Avg open age: N/A days
Stale 30+ days: 0
Stale 90+ days: 0

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

Sign in to see which issues are moving.

Detailed Description

Ribbon is a client-side inter-process communication library with built-in software load balancing for Java applications. It provides load balancing, fault tolerance, and support for multiple protocols including HTTP, TCP, and UDP in an asynchronous and reactive model, along with caching and batching capabilities. The library integrates with Hystrix for fault tolerance and can use Eureka for dynamic server discovery in cloud environments.

Ribbon solves the problem of distributing requests across multiple servers while handling failures gracefully. It operates as a client-side load balancer, meaning the intelligence for routing decisions lives in the calling application rather than in a separate infrastructure component. The core modules—ribbon-core, ribbon-loadbalancer, and ribbon-eureka—handle configuration, load balancing algorithms, and dynamic service discovery respectively, while transport implementations support various protocols through asynchronous clients.

Ribbon suits teams building Java microservices that need client-side load balancing without external infrastructure dependencies. It works well in cloud environments where service instances are dynamic and discoverable through Eureka. However, potential adopters should be aware that the project is in maintenance mode. Several components including ribbon-transport, ribbon-httpclient, and the main ribbon module are no longer actively used internally, and the maintainers have shifted focus toward building an RPC solution on top of gRPC for better multi-language support and extensibility. While core components like ribbon-core, ribbon-loadbalancer, and ribbon-eureka remain deployed at scale in production internally, no new functionality is being added to the open-source library itself, with enhancements instead going into internal wrappers.

Development activity shows the project accepts pull requests and reviews external contributions, though large feature requests are not prioritized internally. The maintainers have explicitly stated they are not making efforts to make components Netflix-agnostic under Ribbon, and new functionality such as request tracing and metrics has been added only to internal solutions built on top of Ribbon rather than to the library itself.