Finagle v6.37.0 Release Notes

  • ๐Ÿ—„ Deprecations

    
    * ๐Ÿ—„ finagle-core: `c.t.f.Deadline` is deprecated in favor of `c.t.f.context.Deadline`.
      ``RB_ID=864148``
    
    ๐Ÿ’ฅ Breaking API Changes
    
    • ๐Ÿšš finagle-core: As part of a move away from encoding/decoding in the Netty pipeline, removed FrameEncoder and FrameDecoder types, found in c.t.f.codec. RB_ID=847716

    • finagle-core: Delete IdleConnectionFilter, which is no longer hooked up in the server, and no longer seems to be useful. RB_ID=856377

    • ๐Ÿ— finagle-core: Remove deprecated methods from c.t.f.builder.ClientBuilder RB_ID=864622

      • connectionTimeout, use tcpConnectTimeout
      • expFailFast, use failFast
      • buildFactory, use other buildFactory methods
      • build, use other build methods
    • finagle-exp: Abstract out parts of the DarkTrafficFilter for potential re-use. We also canonicalize the DarkTrafficFilter stats scope which changes from "darkTrafficFilter" to "dark_traffic_filter". E.g.: "dark_traffic_filter/forwarded", "dark_traffic_filter/skipped", and "dark_traffic_filter/failed". RB_ID=852548

    • finagle-mysql: Mysql has been promoted out of experimental. Please change all references of com.twitter.finagle.exp.{M,m}ysql to com.twitter.finagle.{M,m}ysql

    • ๐Ÿ‘€ finagle-redis: Server-side support for Redis is removed. See this finaglers@ thread (https://groups.google.com/forum/#!topic/finaglers/dCyt60TJ7eM) for discussion. Note that constructors for Redis commands no longer accept raw byte arrays. RB_ID=848815

    • ๐Ÿšš finagle-redis: Redis codec (i.e., c.t.f.Codec) is removed. Use c.t.f.Redis.client instead. RB_ID=848815

    ๐Ÿ†• New Features

    
    * 0๏ธโƒฃ finagle-core: Expose metrics on util's default `FuturePool` implementations
      `unboundedPool` and `interruptibleUnboundedPool`:
      "finagle/future_pool/pool_size", "finagle/future_pool/queue_size",
      "finagle/future_pool/active_tasks", and "finagle/future_pool/completed_tasks".
      ``RB_ID=850652``
    
    * finagle-core: Mux Clients now propagate the number of times the client retried
      the request in the request's c.t.f.context.Context, available via
      c.t.f.context.Retries. ``RB_ID=862640``
    
    * finagle-http: HTTP Clients now propagate the number of times the client retried
      the request in the request's c.t.f.context.Context, available via
      c.t.f.context.Retries. ``RB_ID=864852``
    
    * finagle-thrift: maxThriftBufferSize is now tunable via parameter for Thrift
      servers. It previously only was for ThriftMux servers. ``RB_ID=860102``
    
    โš™ Runtime Behavior Changes
    
    • finagle-http: HttpTransport now eagerly closes client connection after processing non-keepalive requests.

    • finagle-redis: c.t.f.redis.Client now uses the pipelining dispatcher. RB_ID=848815

    • finagle-serversets: c.t.f.serverset2.Stabilizer no longer uses a timer to implement stabilization periods if the periods are 0 seconds long. RB_ID=861561

    • finagle-core: 'c.t.f.Failure' has a new flag, Rejected, to indicate that a given request was rejected. All Failures generated with the Failure.rejected constructor are flagged Rejected and Restartable. RB_ID=863356

    • ๐Ÿ›  finagle-core: c.t.f.FixedInetResolver now optionally retries failed DNS lookups with provided backoff, and c.t.f.serverset2.Zk2Resolver uses this retry functionality infinitely, exponentially backing off from 1 second to 5 minutes. RB_ID=860058