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...
Posted by Zhe Song on June 1, 2022
Twitter processes billions of events in real time every day using a variety of technologies including Hadoop, Kafka, and of course Finagle.
In 2018, we open sourced Finatra Kafka Streams , which we had already been using in production at Twitter...
Read more...
Posted by Helen Woldesenbet on April 20, 2022
Spring is finally here 😎. Enjoy the lovely weather with our April release 🎉.
Bug Fixes
- finagle-integration: we discovered that we had a dead code in MuxClientSession.
Let’s remove Timer as a parameter in MuxClientSession since it’s a...
Read more...
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 🥂.
Deprecations
- util-stats: Deprecated methods on MetricBuilder for directly instantiating metrics so that we can
eventually remove...
Read more...
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...
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...
Posted by Kyle Bahr on January 18, 2022
Happy New Year! Ease yourself into the new year with our January release.
Breaking API Changes
- util-jackson: The error message when failing to deserialize a character now correctly prints the non-character string. 4ddeaf89
Runtime Behavior...
Read more...
Posted by Attila Szegedi on December 17, 2021
The year-end holiday season is upon us, so Happy New Year 🎩 🥂 and enjoy our December release! 🥳
Breaking API Changes
- util-core: Activity.collect* and Var.collect* are now implemented in terms of known collection
type scala.collection.Seq...
Read more...
Posted by Dorothy Ordogh on November 24, 2021
The winter ❄️ holidays are coming, so here is an early gift 🎁 from us to you: the November release ☃️
Breaking API Changes
- util-security: Use snakeyaml to parse yaml instead of a buggy custom yaml
parser. This means that thrown IOExceptions...
Read more...
Posted by Joy Bestourous on November 1, 2021
Didn’t get enough of Halloween this season? Here’s an extra treat: the October release 🎃🍬🍫
New Features
- util-core: Add convenience methods to convert to java.time.ZonedDateTime and
java.time.OffsetDateTime. toInstant, toZonedDateTime, and...
Read more...
Posted by Bryce Anderson on September 30, 2021
September release, hot off the press:
New Features
- util-jvm: Experimentally crossbuilds with Scala 3. bfdde071
- util-stats: Counter, Gauge, and Stat can be instrumented with descriptions. 4e68dd09
- util-cache: Experimentally crossbuilds...
Read more...
Posted by Hamdi Allam on August 13, 2021
August release, hot off the press:
New Features
- util-stats: add getAllExpressionsWithLabel utility to InMemoryStatsReceiver. 29602592
- util-app: Experimentally crossbuilds with Scala 3. 94f1fa37
- util-app-lifecycle: Experimentally crossbuilds...
Read more...
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...
Posted by Ruben Oanta on June 22, 2021
June release, hot off the press:
New Features
- util-core: Add ClasspathResource, a utility for loading classpath resources as an
optional InputStream. c9da7c43
- util-jackson: Add com.twitter.util.jackson.YAML for YAML serde operations with...
Read more...
Posted by Christopher Coco on May 28, 2021
As we head into the summer months and longer days, we’ve got a new release of the Twitter CSL libraries.
NOTE
We’ve introduced a new case class validation library (util/util-validator) based on the Jakarta Bean Validation specification. This library...
Read more...
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...
Posted by Vladimir Kostyukov on April 29, 2021
Fresh off the press, April 2021 release of Twitter CSL libraries. Enjoy!
New Features
- finagle-core: Introduce a new ResponseClassifier (‘IgnoreIRTEs’) that treats
com.twitter.finagle.IndividualRequestTimeoutExceptions as ResponseClass...
Read more...
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...
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...
Posted by Yufan Gong on February 10, 2021
Depends on which part of this planet you are in, you may grab a hot drink or bask in the sunshine. Here is our short and sweet February release.
NOTE
All of our libraries are cross-building with Scala 2.13 in this release! Starting from the March...
Read more...
Posted by Christopher Coco on January 19, 2021
A new year, a new release! 🎆
- scrooge: Scrooge uses better size estimate for Map/Set containers in read() to improve
performance in Java. b1ebce81
New Features
- finagle-core: Add clnt/<FilterName>_rejected annotation to filters...
Read more...
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...
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...
Posted by Jing Yan on October 27, 2020
Trick or… our October release is as sweet as candies 👻
Breaking API Changes
- finagle-thrift: Change the partition locator function getLogicalPartitionId in
PartitioningStrategy from Int => Int to Int => Seq[Int], which supports many to...
Read more...
Posted by Hamdi Allam on September 25, 2020
With the start of Fall 🍁, it is only right for a new release of our libraries! Here’s the latest of Finagle, Finatra, Scrooge, TwitterServer, and Util!
New Features
- finagle-core: Add RelativeName field to Metric Metadata and populate...
Read more...
Posted by Ruben Oanta on August 27, 2020
Release 20.8.0 had a corrupt artifact uploaded to maven central. This patch release
addresses that and includes some other goodies:
New Features
- finagle-thriftmux: Add MethodBuilder specific APIs for ThriftMux partition aware client....
Read more...
Posted by Bonnie Eisenman on August 12, 2020
Another month, another release. 😺 Here’s the August release of Finagle, Finatra, Scrooge, Twitter Server, and Util.
Runtime Behavior Changes
- finagle-netty4-http: Post, Put, Patch non-streaming outbound requests with empty bodies will...
Read more...
Posted by Ruben Oanta on July 22, 2020
Hi folks! Our July release is here – enjoy!
Breaking API Changes
- finagle-core: Correct the spelling of Tracing.recordClientSendFrargmet() to
Tracing.recordClientSendFragment() 30726c01
- finagle-redis: Use StrictKeyCommand for XDEL d174f9d6
Read more...
Posted by Ryan O'Neill on June 24, 2020
Summer is happening 🏖️, and with that comes the June release of Finagle, Finatra, Scrooge, Twitter Server, and Util 😎.
Runtime Behavior Changes
- finagle-core: FailFastFactory is now disabled at runtime when a client’s destination has only...
Read more...
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...
Posted by Vladimir Kostyukov on May 29, 2020
Runtime Behavior Changes
- finagle: Bump jackson version to 2.11.0. 696bb515
Added
- inject-mdc: Move MDC integration from inject/inject-slf4j to inject/inject-mdc.
daf8716d
- finatra-http|finatra-thrift: Update TraceIdMDCFilter...
Read more...
Posted by Yufan Gong on April 26, 2020
April Release encountered some issues running on JDK 8, here’s a patch release that should address it.
New Features
Read more...
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.
New Features
- finagle-thrift/thriftmux...
Read more...
Posted by Yufan Gong on March 9, 2020
Days are getting longer🌻, March has arrived. Here’s what we have done in this release.
New Features
- finagle-opencensus-tracing: Add support for providing a custom TextFormat for header
propagation. a02d377a
Runtime Behavior Changes
Read more...
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...
Posted by Moses Nakamura on February 4, 2020
Welcome to the optometrically significant year–the year of perfect hindsight 🤓
New Features
- finagle-memcached: Upgrade to Bijection 0.9.7. de0ec2c6
- finagle-opencensus-tracing: Enables cross-build for 2.13.0. fee83b10
- finagle-thriftmux...
Read more...
Posted by Bryce Anderson on December 13, 2019
The seasons changed and depending on which hemisphere you’re in it’s time to enjoy either the snow ❄️ or the sun ☀️!
New Features
- finagle-core, finagle-exp: Add annotations to
DarkTrafficFilter
to identify which span
is dark, as well...
Read more...
Posted by Dave Rusek on November 5, 2019
Now that Halloween has come and gone, it’s time to get ready for cold weather fun! ❄️
New Features
- finagle-base-http: The Uri class now provides access publicly to its
path, which is the request uri without the query parameters.
f40fe447
Read more...
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...
Posted by Christopher Coco on October 9, 2019
In preparation for Halloween 👻 at the end of the month, we are very happy to announce
our October 🕷️ release: no tricks 🎃 – all treats 🍬.
New Features
- finagle-partition: Enables cross-build for 2.13.0. 89f06885
- finagle-exception: Enables...
Read more...
Posted by Jing Yan on September 10, 2019
Embrace a beautiful fall with our freshly baked September release! 🍪
Highlights
Read more...
Posted by Yufan Gong on August 15, 2019
A point release to publish Util on scala 2.13.
New Features
- util: Enables cross-build for 2.13.0. d5d20cc3
Java Compatibility
util-stats: In c.t.finagle.stats.AbstractStatsReceiver
, the counter
, stat
and
addGauge
become final, override counterImpl
Read more...
Posted by Kevin Oliver on August 7, 2019
Hot off the press — the August releases. Here’s what’s what.
Breaking API Changes
- finagle-core: The contents of the c.t.f.dispatch.GenSerialClientDispatcher object have been
moved to the new c.t.f.dispatch.ClientDispatcher object. The...
Read more...
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...
Posted by Dorothy Ordogh on July 18, 2019
New Features
- finagle-http: Measure streaming (message.isChunked) chunk payload size with two new histograms:
stream/request/chunk_payload_bytes and stream/response/chunk_payload_bytes, they are
published with a debug verbosity level. These...
Read more...
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...
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...
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...
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...
Posted by Ian Bennett on March 14, 2019
Spring has almost sprung, so take a look at all that we have done!
New Features
- finagle-core: Added tracing annotations to backup requests. 5201f623
- Timestamped annotation “Client Backup Request Issued”
- Timestamped annotation “Client...
Read more...
Posted by Yufan Gong on February 20, 2019
It is the rainy season in San Francisco, grab a cup of hot tea and take a look at our new February release!
New Features
Read more...
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...
Posted by Ryan O'Neill on January 14, 2019
Happy New Year folks! Hopefully new years resolutions are still on pace. In
the meantime, let’s kick off 2019 with a fresh new release of libraries.
New Features
Read more...
Posted by Moses Nakamura on December 18, 2018
It’s hot chocolate season in the big apple. That means mittens, ice-skating,
and curling up by the radiator. Grab your puffer, it’s the most beautiful time
of the year.
New Features
Read more...
Posted by Dave Rusek on November 13, 2018
Halloween has come and gone and it’s already snowing here in the Rockies. Time to cuddle up with a warm compiler and check out the new edition of Twitter’s open source libraries!
New Features
Read more...
Posted by Neuman Vong on October 24, 2018
Here we are in the month of October, just a few weeks until creatures of
fantasy roam the streets together with people dressed up as creatures of
fantasy 👹.
Speaking of the fantastic, we have new releases!
Finagle 18.10.0,
Finatra 18.10.0,
Scrooge...
Read more...
Posted by Neuman Vong on October 18, 2018
Fall is here! If you live in Boulder, you might take a 🚶and watch coyotes
hunt prairie dogs.
The new season brings about a change of clothes, but what about a change of
code? Upgrade to the latest Finagle
version and enjoy the new
features, APIs, and...
Read more...
Posted by Christopher Coco on October 3, 2018
TravisCI announced that it is moving open source projects from travis-ci.org to travis-ci.com which will use Github Apps for a tigther integration with Github.
We plan on working with TravisCI to migrate the entirety of the Finagle Org (github.com...
Read more...
Posted by Ryan O'Neill on September 27, 2018
September is beach season here in the Bay Area, and it looks like our release earlier
this month got caught in a wash cycle. So, we’ve made a point release.
See below for details on the util-slf4j-api
dependency fix for the reason
why we decided to...
Read more...
Posted by Jordan Parker on September 18, 2018
September is beach season here in the Bay Area! Time to finally get out to the beach and
cut fresh new versions of our libraries.
Finagle 18.9.0,
Finatra 18.9.0,
Scrooge 18.9.0,
TwitterServer 18.9.0,
and Util 18.9.0.
New Features
Read more...
Posted by Kevin Oliver on August 7, 2018
Fogust is upon us
and brings the August releases.
Finagle 18.8.0,
Finatra 18.8.0,
Scrooge 18.8.0,
TwitterServer 18.8.0,
and Util 18.8.0.
New Features
Read more...
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...
Posted by Daniel Schobel on July 11, 2018
Hot off the presses, the July releases are here!
Finagle 18.7.0,
Finatra 18.7.0,
Scrooge 18.7.0,
TwitterServer 18.7.0,
and Util 18.7.0.
Runtime Behavior Changes:
Read more...
Posted by Christopher Coco on June 15, 2018
Just in time for the official start to summer 🏝 our June releases are here!
Finagle 18.6.0,
Finatra 18.6.0,
Scrooge 18.6.0,
TwitterServer 18.6.0,
and Util 18.6.0.
Runtime Behavior Changes:
Read more...
Posted by Vladimir Kostyukov on May 8, 2018
Good news, everyone! Finagle & Finatra May releases are here!
As usual, all the corresponding Github projects for Finagle, Finatra, Util, Twitter Server, and
Scrooge have their release pages updated:
Read more...
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...
Posted by Bryce Anderson on April 11, 2018
Our April releases have arrived!
Finagle 18.4.0, Finatra 18.4.0, Scrooge 18.4.0, TwitterServer 18.4.0, and Util 18.4.0.
New Features
Read more...
Posted by Stefan Lance on March 6, 2018
Our March releases have arrived!
Finagle 18.3.0, Finatra 18.3.0, Scrooge 18.3.0, TwitterServer 18.3.0, and Util 18.3.0.
New Features
Read more...
Posted by Yufan Gong on February 5, 2018
Happy Lunar New Year! The February release is here.
Finagle 18.2.0, Finatra 18.2.0, Scrooge 18.2.0, TwitterServer 18.2.0, and Util 18.2.0.
New Features
Read more...
Posted by Daniel Schobel on January 25, 2018
We’ve been running scalac around the clock to fend off the cold and bring you another quarter’s
worth of features and improvements to Finagle and Friends: Finagle,
Finatra,
Scrooge,
TwitterServer,
Util
Efficiency
Future received a more efficient...
Read more...
Posted by Christopher Coco on January 17, 2018
Time to turn the calendar to a new year and a new release — our January release is here!
Finagle 18.1.0, Finatra 18.1.0, Scrooge 18.1.0, TwitterServer 18.1.0, and Util 18.1.0.
New Features:
Read more...
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:
Read more...
Posted by Isabel Martin on December 12, 2017
The December release has arrived!
Finagle 17.12.0, Finatra 17.12.0, Scrooge 17.12.0, TwitterServer 17.12.0, and Util 17.12.0.
Finagle
New Features:
Read more...
Posted by Moses Nakamura on November 17, 2017
It’s November, and you know what that means! Library releases!!! We’re now publishing
with sbt 1.0.x, and we now also publish sbt-scrooge-plugin for sbt 1.0.x. We are also
continuing to publish sbt-scrooge-plugin for sbt 0.13.x.
Finagle 17.11.0
Read more...
Posted by Stefan Lance on November 2, 2017
If you’ve ever tried to debug asynchronous code written with Twitter Future
s,
you may have found that the stack trace isn’t always helpful. The stack trace
at a given point in the program includes the active stack frames and thus shows
the chain of...
Read more...
Posted by Jordan Parker on October 27, 2017
The October releases have arrived! For this release and hereafter, Finagle, Finatra,
Scrooge, Util, and TwitterServer will be versioned as $year.$month.$patch, as opposed to
$major.$minor.$patch. This means that all project versions will be in sync...
Read more...
Posted by Kevin Oliver on October 18, 2017
Seven years ago a simple commit got Finagle’s open source repository
started. Finagle began as a means of dealing with the complexity and
fragility of distributed systems issues here at Twitter. While
distributed systems remain complex and it is not...
Read more...
Posted by Christopher Coco on October 12, 2017
As we move headlong into Autumn we thought this might be a good time to take a
quick look back at some of the work from the previous quarter in
Finagle,
Finatra,
Scrooge,
TwitterServer, and
Util and preview what we’re working on this
quarter and beyond...
Read more...
Posted by Kevin Oliver on September 7, 2017
The September releases are here.
Finagle 7.1.0, Finatra 2.13.0, Scrooge 4.20.0, TwitterServer 1.32.0, and Util 7.1.0.
Finagle
New Features:
Read more...
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...
Posted by Kevin Oliver on July 12, 2017
It’s time to take a look back at what went down in
Finagle,
Finatra and related libraries
over the past few months and get an idea of what’s to come. This
covers the
April and
June releases
(apologies for missing May) as well as the upcoming 7.0.0...
Read more...
Posted by Eitan Adler on June 9, 2017
We have integrated CLA Assistant with the Finagle Github repository.
Due to lack of discoverability, not everyone has been consistent about signing Twitter’s existing CLA. We believe that this will be less of a burden than manually checking CLAs against...
Read more...
Posted by Kevin Oliver on April 6, 2017
As mentioned in our spring planning notes, we are sunsetting a number of modules that have been unsupported or exist in a zombie-like state.
- finagle-ostrich4
- finagle-kestrel
- finagle-stream
- finagle-native
- finagle-mdns
- util-eval
- ostrich
The upcoming...
Read more...
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...
Posted by Kevin Oliver on March 14, 2017
The March releases are hot off the printing press for Finagle 6.43.0, Finatra 2.9.0, Scrooge 4.15.0, TwitterServer 1.28.0, and Util 6.42.0.
Here’s a few of the highlights:
Finatra
See accompanying blog post for details.
Finagle
Read more...
Posted by Vladimir Kostyukov on February 6, 2017
It’s been quite a while since the Netty 4 migration in Finagle was initially
announced. We’ve travelled a long way and are happy to announce that there is now (as of
Finagle 6.42) support for Netty 4 transports in most of the protocols: Thrift, ThriftMux...
Read more...
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...
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...
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...
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...
Posted by Kevin Oliver on May 19, 2016
This Wireshark dissector provides basic decoding of all
Mux messages including:
- Frame length
- Message type
- Tag number
Don’t know about Wireshark
or Mux?
Follow the links for introductions.
While this was released as part of Finagle 6.33.0 we...
Read more...
Posted by Kevin Oliver on April 20, 2016
The upcoming releases of our family of projects will be the final release for
Scala 2.10 and Java 7. These should be:
- Finagle 6.35.0
- Finatra 2.1.6
- Util 6.34.0
- Scrooge 4.7.0
- TwitterServer 1.20.0
- Ostrich 9.18.0
Java 7 reached its end-of-life
in April...
Read more...
Posted by Vladimir Kostyukov on March 11, 2016
This release we’ve been focusing on improving both overall stability of Finagle components and
debugging features. We also reverted a patch that cased duplicate tag error that looks as
follows.
com.twitter.finagle.mux.ServerError: Duplicate tag 6
Read more...
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...
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...
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...
Posted by Vladimir Kostyukov on February 5, 2016
In this milestone, we’ve been focusing on two major directions:
- Improving the user experience by providing friendly APIs and updating docs
- Continuing to improve Finagle’s resiliency
Discoverable Params
There is a new user-friendly API for configuring...
Read more...
Posted by Nik Shkrob on September 10, 2015
We’ve released Service-per-endpoint support for Scala Thrift clients generated by Scrooge. This change has been introduced in Scrooge 4.0.0.
This allows the use of Finagle filters with Thrift services to do retries, timeouts, etc. in a Finagle-idiomatic...
Read more...
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...
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...
Posted by Travis Brown on July 15, 2015
We’re pleased to announce that this year’s FinagleCon will now be
hosted at Twitter’s new One 10th Street Expansion in San Francisco.
We believe that this location will be more convenient than the Kaiser Center in
Oakland for many attendees, and we’re looking forward to showing off this brand
new space.
Read more...
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.
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...
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...
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...
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...
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...
Posted by Kevin Oliver on October 7, 2014
For Finagle and its associated libraries,
known internally at Twitter as the Core Systems Libraries, we plan to change
the way we push code to GitHub and publish releases. The other libraries
included are util,
twitter-server,
ostrich, and
scrooge.
Read more...
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.