Ruben Oanta


Posted June 19, 2019

June 2019 Release Notes - Version 19.6.0

Hey Finaglers,

We’ve cut a June release for our libraries! Here are some highlights:

util-core: Use Local at callback creation for a Future’s interrupt handler rather than the raiser’s locals so that it is consistent with other callbacks. We believe the original design can lead to confusing behavior and bugs and will eventually make this new behavior the default. This functionality is currently disabled and can be enabled by a toggle (com.twitter.util.UseLocalInInterruptible) by setting it to 1.0 if you would like to try it out. 04cee8fb

finagle-core: For both, servers and clients, introduce a way to shift application-level future callbacks off of IO threads, into a given FuturePool or ExecutorService. Use withExecutionOffloaded configuration method (on a client or a server) to access new functionality. This was always possible in an adhoc fashion using a future pool, but we’ve now made it easier to do correctly and across an entire server or client. This is coupled with some useful docs that go into more details on Finagle’s threading model and when/why you’d want to use this feature. 40431bb4

finagle-core: Stats and retry modules use a ResponseClassifier to give hints for how to handle failure (e.g., Is this a success or is it a failure? If it’s a failure, may I retry the request?). The stats module increments a success counter for successes, and increments a failure counter for failures. But there isn’t a way to tell the stats module to just do nothing. And, this is exactly what the stats module should do (nothing) in the case of ignorable failures (e.g. backup request cancellations). To represent these cases, we introduce a new ResponseClass: Ignorable. 256b79b8

finatra-http: Add c.t.inject.server.InMemoryStatsReceiverUtility which allows for testing assertions on metrics captured within an embedded server’s InMemoryStatsReceiver. Update the Kafka tests and utilities to use the InMemoryStatsReceiverUtility and mark the c.t.finatra.kafka.test.utilsInMemoryStatsUtil as deprecated. f82afa58

finatra: Add an explicit dependency on com.sun.activation to allow for using Finatra with JDK 11. This fixes #484. 5a7ccf31

Be sure to checkout the full change log for each project to get more details: