Finagle v22.7.0 Release Notes

    • finagle-thrift: Changing visibility of InputBuffer and OutputBuffer from [finagle] to [twitter]. PHAB_ID=D938475

    🆕 New Features

    * 🔧 finagle-core: Introduce panic mode in load balancers. Configure the threshold for
      panic mode to start using `withLoadBalancer.panicMode`. ``PHAB_ID=D879034``
    
    * finagle-core: Provide `ServerParamsInjector`, a class that will be service-loaded at run-time
      by Finagle servers, and will allow generic configuration of all sets of parameters.
      ``PHAB_ID=D897484``
    
    * finagle-memcached: Add new function, `newLoadBalancedTwemcacheClient`, to create a TwemcacheClient
      that doesn't use a partitioning service.
      ``PHAB_ID=D911789`
    
    🐛 Bug Fixes
    
    • finagle-core: fix issue where Trace.traceLocal and Trace.traceLocalFuture nested traces mistakenly annotate to the parent span. PHAB_ID=D912760

    💥 Breaking API Changes

    
    * 🚚 finagle-core: Remove unused `DeterministicAperture` along with pathways to use weight-unaware 
      aperture loadbalancers. ``PHAB_ID=D933405``
    
    * finagle-base-http: Methods for getting/setting `Accept`, `Authorization`, `Host`, `Referer`,
      `User-Agent`, `X-Forwarded-For` headers were moved from `c.t.f.http.Message` class to
      `c.t.f.http.Request` as these headers are only valid on requests and not on responses.
      Methods for getting/setting `Location`, `Retry-After`, `Server`, and `WWW-Authenticate` headers
      were moved from `c.t.f.http.Message` class to `c.t.f.http.Response` as they are only valid
      on responses and not on requests.
    
    * ⚡️ finagle-core: Update OffloadFilter.Param API to encourage recommended construction.
      ``PHAB_ID=D882210``
    
    * finagle-core: `Trace.recordLocalSpan` is `private[this]` and no longer `protected`. ``PHAB_ID=D912760``
    
    * finagle-core: "ServiceFactory#status" is abstract and requires implementation in the inherited
      classes. ``PHAB_ID=D933288``
    
    * finagle-core: `StackTransformer` has been renamed to `ServerStackTransformer` and the symmetric
      client equivalent (`ClientStackTransformer`) has been added. For those using the older `StackTransformer`
      API you will both need to change the code (fix the extends) __and__ rename the META-INF file from
      `resources/META-INF/services/com.twitter.finagle.StackTransformer` to
      `resources/META-INF/services/com.twitter.finagle.ServerStackTransformer` in order to have your
      transformer continue to service-load correctly. ``PHAB_ID=D937634``
    
    ⚙ Runtime Behavior Changes
    
    • 0️⃣ finagle-core: Changed the default implementation for random and deterministic aperture load balancers to weighted aperture. PHAB_ID=D867878

    • finagle-partitioning: ThriftCustomPartitioningServices now allow fanning out the same request to multiple partitions. PHAB_ID=D882370

    • finagle-core: Rename the counter metric loadbalancer/max_effort_exhausted to loadbalancer/panicked. PHAB_ID=D881529

    • ⬆️ finagle: Upgrade to Netty 4.1.76.Final and netty-tcnative 2.0.51.Final. PHAB_ID=D886019

    • ⚡️ finagle: Update Jackson library to version 2.13.3 PHAB_ID=D906005

    • finagle: Bump version of lz4-java to 1.8.0. PHAB_ID=D905411

    • ⬆️ finagle: Upgrade to Netty 4.1.78.Final and netty-tcnative 2.0.53.Final to support tls tracing for finagle in Pixie. The Pixie changes aren't complete yet, but upgrading netty is a prerequisite for that. PHAB_ID=D916996`