Finagle RPC Framework
github.com
1
Leaving SiteNav
External Link Disclaimer
You are about to visit github.com. This website is not operated by us. We are not responsible for its content or privacy practices.
About this website
Finagle is an extensible RPC system for the JVM, used to construct high-concurrency servers and clients in Scala and Java. Originally developed at Foursquare in 2009 and adopted by Twitter in 2010, Finagle has over 8,800 stars as of 2026 and is the core networking stack powering Twitter, Foursquare, Pinterest, Tumblr, and Stripe microservices. Key features include: protocol-agnostic design (pluggable protocol stack supporting HTTP, Thrift, Memcached, Redis, MySQL, SMTP, and custom protocols via Stack and Service abstractions), future-based concurrency (composable Future and Try abstractions for asynchronous, non-blocking operations with map, flatMap, rescue, and onSuccess composition), load balancing (multiple strategies including round-robin, least-connections, P2C (Power of Two Choices) with EWMA latency smoothing, and bounded heap), connection pooling (per-host connection pools with configurable size, idle timeout, and connection-level budgeting), retry and deadline management (configurable retry budgets, backoff policies including jittered exponential backoff, and per-request deadlines propagated across service boundaries), circuit breaking (automatic failure detection and circuit opening to prevent cascading failures with configurable failure thresholds and recovery windows), request tracing (distributed tracing via Zipkin integration with span annotation and sampling), service discovery (integrating with Zookeeper, Consul, DNS, and custom discovery mechanisms via NameResolver), server and client stack (filterable request-response pipeline with authentication, rate limiting, logging, and monitoring filters), tracing and metrics (built-in stats reporting for latency, request count, and error rate via Ostrich and metrics libraries), and Streaming (support for streaming requests and responses for large data transfers and real-time updates).
Tags & Categories
Categories
Tags
Statistics
1
Views
0
Clicks
0
Like
0
Dislike