Finagle v6.27.0 Release Notes

  • 🆕 New Features

    
    * 👍 finagle-http: Support nacks between Finagle Http clients and servers. When a server fails
      with retryable exceptions (exceptions wrapped by `Failure.rejected`), it sends back a "Nack"
      response, i.e. 503 Response code with a new "finagle-http-nack" header. This allows clients
      to safely retry failed requests, and keep connections open. ``RB_ID=705948``
    
    ⚙ Runtime Behavior Changes
    
    • finagle-core: FailFast parameter renamed from onOrOff to enabled. RB_ID=720781

    • finagle-core: When evaluating NameTree unions, return components of the union in Ok state rather than waiting for all components to be Ok. This enables resilience of unions when part of the tree cannot be resolved. RB_ID=697114

    • finagle-stats: Standard of deviation is no longer calculated. It is exported as a constant 0.0 for "$statName.stddev". RB_ID=717647

    💥 Breaking API Changes

    * finagle-stream: Introduce StreamRequest as a replacement for Netty's
      HttpRequest, and converted the rest of the public API to not leak
      other Netty types (notably ChannelBuffer is replaced by Buf). ``RB_ID=695896``
    
    * finagle-core: Dtab does not implement the Namer interface anymore. Use
      `c.t.f.naming.DefaultInterpreter` to bind a name via a Dtab. Support for Dtab entries starting
      with /#/ has been removed. `c.t.f.Namer.bindAndEval` has been removed. Use
      `c.t.f.Namer.resolve` instead. ``RB_ID=711681``
    
    * 🗄 finagle: `LoadService` and `ThriftRichClient` migrated off of deprecated `ClassManifest`
      to `ClassTag`. ``RB_ID=720455``