Finagle v6.26.0 Release Notes
-
๐ Deprecations
* ๐ finagle-memcached: Deprecated in favor of finagle-memcachedx and now removed. ๐ New Features
- ๐ finagle-httpx: Support nacks between Finagle Http clients and servers. When a server fails
with retryable exceptions (exceptions wrapped by
Failure.rejected
), it sends back a "Nack" response, i.e. 503 Response code with a new "finagle-http-nack" header. This allows clients to safely retry failed requests, and keep connections open.RB_ID=670046
๐ฅ Breaking API Changes
* ๐ finagle-core: Moved netty3 specific things into a netty3 namespace. For these symbols, the namespace translation follows this pattern: `c.t.f.$MODULE._ => c.t.f.netty3.$MODULE._.` ``RB_ID=691746`` * finagle-core: Define `WeightedSocketAddress` as a case class. Add `WeightedSocketAddress.extract` method to extract weight. ``RB_ID=614228`` * finagle-core: Constructing a new Balancer that can be injected into a Finagle client was unnecessarily complex and non-uniform. We removed the legacy constructors around defining the collection of endpoints and simplified the interface to `LoadBalancerFactory`. Now, `com.twitter.finagle.loadbalancer.Balancers` defines the collection of balancer constructors. ``RB_ID=660730`` * ๐ง finagle-core: Aperture can no longer be enabled via command line flags. Configuring per-client settings globally is generally not a good idea and we're working to remove these flags from Finagle. Use the constructors in `com.twitter.finagle.loadbalancer.Balancers` to create an instance that can be injected into a client. ``RB_ID=663194`` * 0๏ธโฃ finagle-core: The default load balancer has changed to p2c from heap. ``RB_ID=693450`` * finagle-core: `Service.isAvailable` and `ServiceFactory.isAvailable` is finalized. `Service.status` and `ServiceFactory.status` supersedes `isAvailable` usage since 6.24.0 release. ``RB_ID=678588`` * ๐ finagle-core: `ClientBuilder.failureAccrual` method is removed. Use `ClientBuilder.failureAccrualFactory` instead. ``RB_ID=689076`` * ๐ finagle-core: Stack param `ClientBuilder.ClientConfig.FailureAccrualFac` is removed. Use `ClientBuilder.failureAccrualFactory` instead. ``RB_ID=689076`` * ๐ป finagle-exception: `com.twitter.finagle.exception.ExceptionReporter` is no longer used as the default `com.twitter.finagle.util.ReporterFactory`. ``RB_ID=674646`` * ๐ฆ finagle-kestrel: Replace deprecated finagle-kestrel package with finagle-kestrelx. ``RB_ID=667920`` * finagle-core: Add new method `noFailureAccrual` on `ClientBuilder` that completely disables `FailureAccrualFactory` in the underlying stack. ``RB_ID=689076`` ๐ New Features ~~~~~~~~~~~~ - ๐ finagle-thrift: Support for finagle Services per thrift method.
- ๐ finagle-httpx: Support nacks between Finagle Http clients and servers. When a server fails
with retryable exceptions (exceptions wrapped by