Finagle blog

Featuring announcements, release notes, and posts by the Finagle team and Finagle adopters outside of Twitter.

Jul 2022 Release Notes - Version 22.7.0

Posted by Vladimir Kostyukov on July 28, 2022

This release comes with a delay, which was intentional. A few months ago, we’ve decided to slow down our release train and switch from releasing monthly (12 releases a year) to releasing quarterly (4 releases a year).

The next release should have...

Read more...

March 2022 Release Notes - Version 22.3.0

Posted by Yufan Gong on March 29, 2022

March is here ☀️, and Spring isn’t far behind 🌱. Enjoy this wonderful time of year with our March release 🥂.

Util

Deprecations

  • util-stats: Deprecated methods on MetricBuilder for directly instantiating metrics so that we can eventually remove...
Read more...

February 2022 Release Notes - Version 22.2.0

Posted by Moses Nakamura on March 4, 2022

One of the joys of winter is drinking a mug of hot cocoa, curling up in a nook, and warming yourself by the heat of your computer compiling Scala code ☕🖥️🔥

We have a new release, and no houses were burned down in electrical fires while getting it...

Read more...

2021 Fall/Winter Update 🍂❄️

Posted by Joy Bestourous on February 3, 2022

Happy New Year, folks! 🥳 What better way to honor the year of 2022 🎇 than with some highlights from the second half of 2021. Welcome to the CSL Half-ly Review, a summary of all great CSL things from the second half of 2021🕺🏼.

Finagle-Postgres

Big...

Read more...

Summer Update 2021 🐬

Posted by Jing Yan on August 3, 2021

Shall I compare thee to a summer’s day? With blooms 🌸 and breezes 🍃, comes our Q2 update!

Tech Debts Grooming

Every quarter, we spend a sprint to team up and kill tech debt ⚔️! This quarter, we set our minds on migrations, deprecations, and user...

Read more...

Spring Update 2021 🚲

Posted by Hamdi Allam on May 6, 2021

Hey Finaglers,

Spring has sprung and the time has come ⏰ to update you on all of the exciting changes we’ve been making. Here’s our quarterly review for Q1 2021, highlighting our work in January, February, and March!

Without further ado, here’s our...

Read more...

CSL Quarterly Review, Winter/Spring 2021

Posted by Bonnie Eisenman on March 31, 2021

Daffodils are blooming, the snow is melting, spring is in the air…and it’s time for another CSL update. The CSL team has been busy since our last quarterly / semiannual / epochly bulletin!

Without further ado, here’s our Q4 2020 / Q1 2021 recap:

... Read more...

🌷 March 2021 Release Notes - Version 21.3.0

Posted by Ian Bennett on March 30, 2021

As the 🐻 animals 🐿️ awaken from hibernation, we too have awoken the 🐆 beast 🐅 with this release. Please enjoy!

NOTE

As we noted in the 21.2.0 release, we cross-build for Scala 2.12 and Scala 2.13 for all of our projects and we have dropped support...

Read more...

Summer and Fall Update 2020 🚲

Posted by Ryan O'Niell on December 14, 2020

Greetings Finaglers! 👨💻👩💻. Usually, four times a year 🗓 we send out a comprehensive retrospective of all of the exciting changes we’ve been making. However, 2020 has been anything but usual. So here’s the semiannual (Or is it biannual 🤔? Definitely...

Read more...

December 2020 Release Notes - Version 20.12.0

Posted by Moses Nakamura on December 11, 2020

You get two for the price of one this time! We skipped the 20.11.0 release, and we’re headed straight to 20.12.0. This is the last minor bump of 2020, since there aren’t any other months this year (we hope!). Goodbye to the optometrically significant...

Read more...

Spring Update 2020

Posted by Vladimir Kostyukov on June 4, 2020

Salute, Finaglers 🙇‍♂️! Four times a year we send out a comprehensive overview of all these exciting changes we’ve been working behind the curtains 🎭. As you probably guessed already, this is one of those times ✨! It’s a Q1 2020 quarterly review episode...

Read more...

April 2020 Release Notes - Version 20.4.0

Posted by Ian Bennett on April 6, 2020

In these unprecedented times, we wish for nothing but your health and safety. April showers 🌦️ bring May flowers 🌻, so #StayAtHome and fill some time reading about some of the changes in our latest release.

Finagle

New Features

  • finagle-thrift/thriftmux...
Read more...

🍂 Fall/Winter ❄️ 2019 Quarterly Review

Posted by Ian Bennett on February 27, 2020

Hi Finaglers,

It is ⌛time to take a 👀 look back on the 🌇 twilight of the year 2019, when the seasons shift from 🍂 Fall to Winter ❄️. Across our projects, we have introduced support for JDK 11 and added support for Scala 2.13 across a large portion...

Read more...

Fall Update 🍂

Posted by Yufan Gong on October 23, 2019

Hi Finaglers,

Fall has arrived in the Northern Hemisphere 🌍🌎🌏, and in San Francisco, we are enjoying the light breeze🎐and warm sunshine☀️. Here are some quick highlights of our work from July, August, and September. If you want to keep an 👁 on our...

Read more...

Summer Update ☀️

Posted by Christopher Coco on July 26, 2019

Hello Finaglers,

Summer ⛱️ is now in full-effect around the world 🌍 but we interrupt your travel 🚙and ice cream 🍦 to quickly highlight the 🆒 things released over the spring and early summer 🐚 months of April, May, and June. Just a note, if you’d like...

Read more...

June 2019 Release Notes - Version 19.6.0

Posted by Ruben Oanta on June 19, 2019

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...

Read more...

Spring Update 🚲

Posted by Moses Nakamura on May 29, 2019

Hey Finaglers,

Spring has sprung, and we’re beginning to ease into summer. 🚲season has begun in New York City! We’ve been busy little bees, and this review comes a little bit late, so it won’t include all of the work we’ve done since the last review...

Read more...

May 2019 Release Notes - Version 19.5.1

Posted by Ryan O'Neill on May 21, 2019

With it being late May, the beginning of summer is right around the corner. Along with that comes a new release of our libraries. Unfortunately, there was an issue with our first attempt (19.5.0) so we created a point release (19.5.1), which fixes...

Read more...

April 2019 Release Notes - Version 19.4.0

Posted by Vladimir Kostyukov on April 19, 2019

Highlights

  • After several years of continuous effort decoupling Finagle from Netty 3, we’ve finally got to the point the dependency can be dropped. As of this release, there is no Netty 3 artifacts on the classpath.
  • Finagle HTTP now transmits trailing...
Read more...

Winter Update ❄️

Posted by Dave Rusek on January 18, 2019

Winter is in full swing, a new year is upon us, and the coyotes are still doing their thing, and so are all of us here at Twitter. As part of your new year resolutions please make it a point to check out the latest releases of our open source offerings...

Read more...

🎇 Summertime Update 🎆

Posted by Jordan Parker on July 19, 2018

Believe it or not, summer is in full swing and it’s once again time to take stock of where we’ve been and where we’re headed. For a full list of changes over the past quarter, check out the older posts on this blog.

Operability

We’ve continued to...

Read more...

🦋 Spring Review

Posted by Kevin Oliver on April 18, 2018

It’s time to take a look back at what went down with Finagle, Finatra & friends over the past three months, and get an idea of what’s to come. As projects don’t tend to care about quarterly boundaries, some of our work is a work in progress.

Efficiency

Read more...

Guava-less

Posted by Kevin Oliver on December 12, 2017

We have been minimizing our dependency on Guava, which is big and often causes version conflicts for our users. This work will be released as part of January’s 18.1 release, though there are 2 places it remains:

  • util-cache-guava has a CacheBuilder

Read more...

Finagle 7 Release Notes

Posted by Daniel Schobel on August 17, 2017

The August release is here and brings a major version bump for both Finagle and Util to v7! 🍰🍰🍰

Over the last few years Finagle has had an extensive internal overhaul to support Netty 4 along with a rewrite of all its protocols so now as the last...

Read more...

🌻 Spring Planning 🌻

Posted by Kevin Oliver on March 20, 2017

The team working on Finagle, Finatra, and related libraries met last week and did our planning for the next three months. These are high-level goals and as such, have varying degrees of confidence and certainty.

In the spirit of Spring cleaning:

... Read more...

Finagle 6.41 Release Notes

Posted by Jillian Crossley on December 23, 2016

As the year ends, we’ve got an exciting new release for you! Here’s a quick rundown of what we’ve been up to.

Scala 2.12 Support is Here

Finagle, Util, Ostrich, Scrooge, and Twitter-Server are all now cross-compiled for Scala 2.11 and 2.12(!)

Dynamic...

Read more...

Farewell, maven.twttr.com!

Posted by Bryce Anderson on November 29, 2016

Historically Finagle has depended on a forked org.apache.thrift libthrift version 0.5.x, which happens to not be published to the Central Repository. We have published the artifact to maven.twttr.com, but this requires users to add the maven.twttr...

Read more...

Finagle Block Party

Posted by Kevin Oliver on September 1, 2016

💔 SPOILER ALERT: you do not want to go to this party 💔

Blocking Finagle’s event loop via calls to Await.result or Await.ready will cause your application to experience unexpected slowness, a decrease in throughput, and potentially deadlocks. Find...

Read more...

Finagle 6.36 Release Notes

Posted by Vladimir Kostyukov on July 8, 2016

This is Finagle’s first release only for Java 8 and Scala 2.11. Since the previous release, the team has been focusing on the Netty 4 migration as well as eliminating some technical debt.

Towards Netty 4

The team is firing on all cylinders towards...

Read more...

Hello AsyncStream!

Posted by Moses Nakamura on February 15, 2016

tl;dr AsyncStream is replacing Spool.

Big shoutout to Neuman Vong, who designed and built AsyncStream soup to nuts ✧٩(•́⌄•́๑)

We know and love Spool, the Twitter util tool for asynchronous object streaming. The main advantages of asynchronous stream...

Read more...

Making application errors matter

Posted by Kevin Oliver on February 9, 2016

Finagle’s new response classifiers improve client’s avoidance of faulty nodes thus increasing your success rate. To get this benefit, you must wire up the application’s rules into your clients and how to do so is explained below.

First, a pop quiz...

Read more...

Retry Budgets

Posted by Kevin Oliver on February 8, 2016

Ever had your service attacked by a retry storm from your clients? Or your clients’ clients? Or has your service ever been the attacker in one of those situations?

Thought so.

To help you avoid this, in release 6.31 we’ve introduced the notion of...

Read more...

Finagle 6.33 Release Notes

Posted by Vladimir Kostyukov on February 5, 2016

In this milestone, we’ve been focusing on two major directions:

  1. Improving the user experience by providing friendly APIs and updating docs
  2. Continuing to improve Finagle’s resiliency

Discoverable Params

There is a new user-friendly API for configuring...

Read more...

Lightning talks at FinagleCon

Posted by Travis Brown on July 29, 2015

FinagleCon is just over two weeks away, and we’re looking for a few attendees who are interested in giving lightning talks to kick off the afternoon. The talks will be capped at five minutes and can be on a wide range of Finagle-related topics: how you’re using Finagle, suggested changes, far-fetched experiments, integration with other libraries or tools, etc. Read more...

SSL now supported for maven.twttr.com

Posted by Travis Brown on July 16, 2015

Most of Twitter’s open source projects for the JVM are published to Maven Central, but for various reasons a few are still published to maven.twttr.com, a Maven repository that is hosted by Twitter. While Finagle itself is in Maven Central, some of its subprojects and some Finagle-related libraries and tools require dependencies from maven.twttr.com.

We’re actively working to eliminate the need for this separate repository, but we don’t have a definite timeline for moving everything to Maven Central, and so this week we have enabled secure access to the repository, which was previously only available over unsecured HTTP. Read more...

Announcing FinagleCon 2015

Posted by Travis Brown on June 11, 2015

Yesterday we opened registration and the call for participation for FinagleCon, a new annual conference for the Finagle community. This year’s conference will be a Scala by the Bay event hosted at Twitter HQ in San Francisco, and will take place on Thursday, August 13, the day before Scala by the Bay begins.

Scala by the Bay logo

The conference program will include keynotes by Twitter’s Marius Eriksen and SoundCloud’s Phil Calçado, talks by Finagle adopters and contributors, and workshops and tutorials on a range of Finagle-related topics (including Finatra and Finch). Read more...

Finagle services made simple with Serial

Posted by Travis Brown on February 6, 2015

Most internal services at Twitter speak the Thrift protocol, which provides many benefits—once you’ve defined your data types and service interfaces, for example, it’s possible to create bindings for a wide range of programming languages, and Twitter’s Scrooge in particular makes it easy to create high-performance Finagle servers and clients for your Thrift interfaces.

In some cases, though, it would be more convenient not to have to worry about things like interface description files, the build system plugins necessary to generate bindings from them, etc. In particular, being able to define Finagle services that take arbitrary types as inputs and outputs in a Scala REPL would make writing tutorials and quickstart projects much more straightforward, and would enable easier experimentation with other parts of the Finagle API. Read more...

Purely Functional REST APIs with Finch

Posted by Vladimir Kostyukov on December 10, 2014

At Konfettin we decided to build a REST API backend using a Finagle stack. While it’s possible to do that using pure Finagle abstractions, we ended up writing the Finch library to simplify things and get more suitable building blocks. And it worked well: we shipped the product and got the customers. This library has been running in production for about six months so far and it’s pretty stable and well-tested. This post gives an overview of Finch: explains its core design principles and use cases. Read more...

New and upcoming Finagle examples

Posted by Travis Brown on October 30, 2014

Part of my role as an open source advocate for Scala projects at Twitter involves talking to developers outside of Twitter about how we can make our open source projects more widely useful and accessible, and one of the most common requests for Finagle is for more introductory tutorials and examples.

One of the steps we’re taking in this direction is a major overhaul of finagle-example, which we’ll be moving out of the main Finagle repository and into its own project under the Finagle organization on GitHub. At the same time we’ll be filling out the top-level introduction to the examples (which is currently a little bare), adding more detailed API documentation, providing better example coverage for Finagle subprojects, and creating a larger set of Java examples to show off our new work on improving Java compatibility. Read more...

Upgrading Finagle to Netty 4

Posted by Sonja Keserovic on October 20, 2014

Netty 4 was released more than a year ago and Netty 5 Alpha is already available. Finagle is still using Netty 3, which is getting outdated quickly and is preventing us from taking advantage of various performance improvements in newer versions. It’s also creating additional work for the Finagle team at Twitter as we need to port important security and performance fixes back to Netty 3. Read more...

Release notes

Posted by Moses Nakamura on August 12, 2014

We’re experimenting with a new form of release notes, so that it’s easier to get context on what’s going on in Finagle-land, especially with an eye to letting consumers see what the latest and greatest features are, and providing a little more context around what’s going on. Read more...

About Finagle

Finagle is an extensible RPC system for the JVM, used to construct high-concurrency servers. Finagle implements uniform client and server APIs for several protocols, and is designed for high performance and concurrency. Most of Finagle's code is protocol agnostic, simplifying the implementation of new protocols.

For more information, please see the project website or source code repository, or get in touch through our mailing list, Twitter account, or the #finagle IRC channel on Freenode.