Finagle v18.7.0 Release Notes

  • ๐Ÿ†• New Features

    
    * finagle-core: Promote the push-based API's out of experimental. For protocols that
      have eager read paths, for example multiplexed protocols and non-streaming clients,
      a push-based protocol implementation can provide significant performance benefits
      by avoiding the impedance mismatch between the underlying Netty framework and the
      pull-based Transport model. ``PHAB_ID=D189187``
    
    * 0๏ธโƒฃ finagle-core: There is now an implicit instance for Finagle's default timer:
      `DefaultTimer.Implicit`. ``PHAB_ID=D185896``
    
    * finagle-core: Introduce new command-line flag `c.t.f.tracing.enabled` to entirely
      disable/enable tracing for a given process (default: `true`).  ``PHAB_ID=D186557``
    
    * finagle-mux: Promote the push-based Mux implementation out of experimental status.
      ``PHAB_ID=D189187``
    
    * finagle-mysql: `com.twitter.util.Time` can now be used with
      `PreparedStatement`s without converting the `ctu.Time` to a `java.sql.Timestamp`.
      ``PHAB_ID=D182973``
    
    * ๐Ÿ‘• finagle-stats: Adds a lint rule to detect when metrics with colliding names are used.
      ``PHAB_ID=D183494``
    
    * ๐Ÿ”ง finagle-core: Client side `NackAdmissionFilter` can now be configured more easily by
      calling `$client.withAdmissionControl.nackAdmissionControl(window, threshold)`.
      ``PHAB_ID=D188877``
    
    * finagle-thrift: Trait c.t.scrooge.ThriftService is now c.t.finagle.thrift.ThriftService.
      Scrooge generated service objects now all inherit from c.t.finagle.thrift.GeneratedThriftService.
      ``PHAB_ID=D180341``
    
    ๐Ÿ’ฅ Breaking API Changes
    
    • finagle-core: c.t.f.dispatch.ClientDispatcher.wrapWriteException has been turned from a partial function instance into a static total function. PHAB_ID=D189639

    • finagle-mux: ClientDiscardedRequestException now extends FailureFlags and is no longer a case class. PHAB_ID=D183456

    ๐Ÿ› Bug Fixes

    
    * finagle-core: `c.t.f.filter.NackAdmissionFilter` is now aware of `FailureFlags` encoded
      failures. ``PHAB_ID=D193390``
    
    * finagle-mux: Mux's server dispatcher is now aware of `FailureFlags` encoded failures.
      ``PHAB_ID=D193456``
    
    โš™ Runtime Behavior Changes
    
    • finagle-core: Server-side rejections from c.t.f.filter.RequestSempahoreFilter.module are now captured by c.t.f.service.StatsFilter. They will roll up under "/failures", "/failures/rejected", and "/failures/restartable" in stats. PHAB_ID=D187127

    • finagle-core: c.t.f.tracing.Trace.tracers now returns only distinct tracers stored in the local context (returned all tracers before). PHAB_ID=D188389

    • finagle-http: HTTP param decoding is no longer truncated to 1024 params. PHAB_ID=D190113

    • finagle-mux: When mux propagates an interrupt started by BackupRequestFilter over the network, the FailureFlags.Ignorable status is propagated with it. PHAB_ID=D183456