A battle-tested client-side IPC library with built-in load balancing, fault tolerance, and support for HTTP/TCP/UDP protocols.
Ribbon is a client-side Inter-Process Communication (IPC) library developed by Netflix for building resilient distributed systems. It provides load balancing, fault tolerance, and multi-protocol support (HTTP/TCP/UDP) for remote service calls in cloud environments. The library helps applications handle service discovery, traffic distribution, and failure scenarios in microservices architectures.
Java developers building cloud-native microservices architectures who need reliable service-to-service communication with built-in load balancing and fault tolerance. Teams using or migrating from Netflix OSS stack components.
Ribbon offers battle-tested production reliability from Netflix's scale, with modular components that can be used independently. It provides comprehensive load balancing and fault tolerance features out-of-the-box, integrated with the broader Netflix OSS ecosystem including Eureka and Hystrix.
Ribbon is a Inter Process Communication (remote procedure calls) library with built in software load balancers. The primary usage model involves REST calls with various serialization scheme support.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Core components like ribbon-loadbalancer and ribbon-eureka are deployed at scale in production at Netflix, ensuring reliability for critical systems.
Follows a single-responsibility design where modules like load balancing and transport can be used independently, as highlighted in the README's modular breakdown.
Seamlessly integrates with Eureka for dynamic service discovery and Hystrix for circuit breaking, providing a comprehensive fault tolerance stack for cloud environments.
Supports HTTP, TCP, and UDP protocols in an asynchronous reactive model using RxNetty, enabling flexible communication patterns beyond just REST.
The project is explicitly in maintenance mode; Netflix is not prioritizing new features and has moved to internal solutions, limiting future enhancements and community-driven updates.
Several components like ribbon-transport and ribbon-httpclient are deprecated or not used internally, leading to potential compatibility issues and reduced support for certain use cases.
Features such as request tracing and metrics are handled in Netflix's internal wrappers, not exposed in the open-source version, requiring additional work for full observability.