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.