Finagle v18.11.0 Release Notes

Release Date: 2018-11-12 // over 5 years ago
  • 🆕 New Features

    • finagle-base-http: Add Message.httpDateFormat(millis) to format the epoch millis into
      an RFC 7231 formatted String representation. eb9bec0e
    • finagle-core: Introduce an StackClient.withStack overload that
      👉 makes modifying the existing Stack easier when using method chaining.
      8f69e833
    • finagle-mysql: Introduce session to be able to perform multiple operations that require
      session state on a guaranteed single connection. a06f7d67
    • finagle-netty4: When using the native epoll transport, finagle now publishes the TCP window size
      and number of retransmits based on the tcpInfo provided by from the channel. These stats are
      published with a debug verbosity level. 16071088
    • 🛠 finagle-http: HTTP clients and servers now accept fixedLengthStreamedAfter param in their
      🔧 withStreaming configuration (default: 5 MB when streaming is enabled). This new parameter
      controls the limit after which Finagle will stop aggregating messages with known Content-Length
      🛰 (payload will be available at .content) and switch into a streaming mode (payload will be
      available at .reader). Note messages with Transfer-Encoding: chunked never aggregated.
      842e5e1a

    💥 Breaking API Changes

    • 🚚 finagle-http: c.t.f.http.param.MaxChunkSize has been removed. There is no good reason to
      🔧 configure it with anything but Int.MaxValue (unlimited). 990c8650
    • ⚡️ finagle-exp: Update DarkTrafficFilter#handleFailedInvocation to accept the request type
      for more fidelity in handling the failure. b247f941

    ⚙ Runtime Behavior Changes

    • finagle-http: Unset maxChunkSize limit in Netty HTTP codecs. Now both clients and servers
      emit all available data as a single chunk so we can put it into use quicker.
      990c8650
    • finagle-http: Streaming clients (withStreaming(true)) now aggregate inbound messages with known
      🛰 Content-Length if their payloads are less than 5mb (8k before). Use withStreaming(true, 32.kb)
      to override it with a different value. 24271b29
    • finagle-http2: HTTP/2 servers perform a more graceful shutdown where an initial
      GOAWAY is sent with the maximum possible stream id and waits for either the client
      to hang up or for the close deadline, at which time a second GOAWAY is sent with
      the true last processed stream and the connection is then closed.
      93fee499

    🗄 Deprecations

    • 🗄 finagle-core: Deprecate
      EndpointerStackClient.transformed(Stack[ServiceFactory[Req, Rep]] => Stack[ServiceFactory[Req, Rep]])
      in favor of the withStack variant. 8f69e833