Skip to content

Finagle 21.3.0

Compare
Choose a tag to compare
@finaglehelper finaglehelper released this 30 Mar 17:23
· 825 commits to develop since this release

New Features

  • finagle-core: Added value ForceWithDtab to flag
    -com.twitter.finagle.loadbalancer.exp.apertureEagerConnections that forces the
    aperture load balancer to eagerly connect, even in staging environments where
    Dtab locals are set. 9dab522d
  • finagle-core: Introduce a new Backoff to create backoffs based on varies strategies, where
    backoffs are calculated on the fly, instead of being created once and memoized in a Stream.
    Also introduced Backoff.fromStream(Stream) and Backoff.toStream to help with migration to
    the new API. 91d24c33
  • finagle-netty4: Upgrade to Netty 4.1.59.Final and TcNative 2.0.35.Final. ee6ced91
  • finagle-http: Integrate Kerberos authentication filter to finagle http client and server.
    e3bfa0c3 eefc21c8
  • finagle-core: Provided c.t.f.ssl.TrustCredentials.X509Certificates to enable directly
    passing X509Certificate instead of passing a File. 61c2a596

Breaking API Changes

  • finagle: Builds are now only supported for Scala 2.12+ 8a48eab7
  • finagle-core: Changed flag -com.twitter.finagle.loadbalancer.exp.apertureEagerConnections"
    from having Boolean values true or false to EagerConnectionsType` values Enable,
    Disable, and ForceWithDtab. 9dab522d
  • finagle-mysql: The constructor of c.t.f.mysql.transport.MysqlBufReader now takes an underlying
    c.t.io.ByteReader. Prior uses of the constructor, which took a c.t.io.Buf, should migrate to
    using c.t.f.mysql.transport.MysqlBufReader.apply instead. ad73f92d
  • finagle-base-http: Kerberos jaas config KerberosConfiguration is replaced with ServerKerberosConfiguration
    and ClientKerberosConfiguration concrete classes.

Runtime Behavior Changes

  • finagle: Revert to scala version 2.12.12 due to scoverage/sbt-scoverage#319
    c2db97c2
  • finagle: Bump scala version to 2.12.13 b8e4e0ac
  • finagle-core: Move helper tracing methods like traceLocal in Trace into the Tracing class. This
    allows cheaper use of these APIs by first capturing a Trace via Trace#apply, avoiding the extra lookups
    that will add overhead on the request path. ec0097cd.
  • finagle-core: c.t.finagle.InetResolver, c.t.finagle.builder.ClientBuilder,
    c.t.finagle.liveness.FailureAccrualFactory, c.t.finagle.liveness.FailureAccrualPolicy,
    c.t.finagle.param.ClientParams, c.t.finagle.param.SessionQualificationParams,
    c.t.finagle.service.FailFastFactory, c.t.finagle.service.RequeueFilter,
    c.t.finagle.service.Retries, c.t.finagle.service.RetryFilter, and
    c.t.finagle.service.RetryPolicy will accept the new c.t.finagle.service.Backoff to create
    backoffs. Services can convert a Stream to/from a Backoff with Backoff.fromStream(Stream)
    and Backoff.toStream. 91d24c33
  • finagle-core: remove the com.twitter.finagle.loadbalancer.apertureEagerConnections Toggle and
    change the default behavior to enable eager connections for c.t.f.loadbalancer.ApertureLeastLoaded
    and c.t.f.loadbalancer.AperturePeakEwma load balancers. The state of the
    com.twitter.finagle.loadbalancer.apertureEagerConnections GlobalFlag now also defaults to enable
    this feature (Enable. You can disable this feature for all clients via setting the
    com.twitter.finagle.loadbalancer.apertureEagerConnections GlobalFlag to Disable for your process.
    (i.e. -com.twitter.finagle.loadbalancer.apertureEagerConnections=Disable).
    ef8d536e

Deprecations

  • finagle-core: Backoff.fromJava is marked as deprecated, since the new Backoff is java-friendly.
    For services using Stream.iterator on the old Backoff, please use the new API
    Backoff.toJavaIterator to acquire a java-friendly iterator. 91d24c33