Kevin Oliver


Posted March 14, 2017

Finagle 6.43 Release Notes

The March releases are hot off the printing press for Finagle 6.43.0, Finatra 2.9.0, Scrooge 4.15.0, TwitterServer 1.28.0, and Util 6.42.0.

Here’s a few of the highlights:


See accompanying blog post for details.


  • finagle-http now classifies server error status codes (500s) as failures. This affects success rate metrics and failure accrual. See the com.twitter.finagle.http.serverErrorsAsFailuresV2 toggle for opting out of this behavior. f34a7344
  • The finagle-http APIs continue their trek to rid themselves of having Netty 3 in its public API.
  • finagle-http now has experimental http/2 support. To try it out, pass the command line parameter -com.twitter.finagle.toggle.flag.overrides=com.twitter.finagle.http.UseHttp2=1.0. Please let us know of any issues that you run into!


  • The Scala code generator now supports annotations on enums, enum fields, services, and service functions. 4821b46e
  • Scala’s types for ServiceIfaces are now a Service from ThriftMethod.Args to ThriftMethod.SuccessType, instead of ThriftMethod.Args to ThriftMethod.Result. This is a breaking API change though it should generally be easy to adapt existing code to it. c5ea8515


Our byte-level abstraction, Buf got a fresh coat of paint:

  • Introduce Buf.process for sequential processing of a Buf. Finagle has been updated to use it where appropriate, leading to reductions in allocations. 1df3646f and others
  • Introduce Buf.write(java.nio.ByteBuffer) for writing to NIO ByteBuffers. d6f7985e
  • Buf.concat is now a constant time operation. bb05f425
  • ConcatBuf has been removed, replaced by Buf.apply and Buf.Composite. 5833c560


Guava has been upgraded to version 19.0 from 16.0.1 d6bdecc9