Happy New Year everyone! Let’s quickly check what we’ve ended up the year with, and what to expect from 2025.
Highlights
A long-awaited feature is coming to AnyCable—presence tracking. We’ve just released the first release candidate for the upcoming 1.6 version with presence tracking capabilities. You can check this feature out via our Stackblitz demo or by creating a new server on AnyCable+ (yes, the feature is already available there).
As you can see from the docs, presence tracking is quite a complex feature consisting of multiple components. We’re going to incrementally release them over the next months. Stay tuned!
News
Supabase announced WebSockets support for Edge functions. Although it opens some new possibilities (the primary use case OpenAI Realtime which we discussed in the previous issue), the duration limits must be taken into account (making a client re-connect and re-initialize every few minutes may not work for your application). (Have Supabase invented WebSockets Long Polling 🤔?)
Talks
Streaming over the web with modern Ruby
Shannon Skipper provided a great overview of realtime transports in his recent RubyConf talk: WebSockets (not dead at all), WebTransport (not-so-close future), SSE, HTTP chunking.
Releases
Congratulations to the Phoenix team and Chris McCord for reaching this milestone!
Want to connect to AnyCable or Action Cable server from another backend application? Here is an open-source Go library for that!
This library aims to provide better Action Cable experience for Async Ruby / Falcon users. It relies on the Action Cable Next project which we mentioned a few times this year.
Recently, Irina presented the Next.js version of our Rails Twilio OpenAI Realtime demo. It demonstrates how AnyCable-based realtime server can stay language and framework-agnostic and work with any backend!
Frame of remembrance: Noah Gibbs
The end of the year brought us sad news: a prominent member of Ruby and Rails communities, the author of an amazing “Rebuilding Rails” book and many more, Noah Gibbs has passed away (/r/ruby).
Let me share you one story (related to our newsletter’s primary topic).
I first met Noah at SouthEastRuby conference in 2018 where we were both speaking. We’ve likely seen each other before at larger conferences but had no real opportunity to chat; the regional conferences are much better for finding new friends in the community.
Over three days, we had a few thoughtful conversations, technical and not, but one topic stayed with us for quite some time after the event—Action Cable. I still smile when I recall how right during the conference Noah sent me a link to a secret gist titled action_cable_weird_shit.txt. It contained a dozen questions and notes on the library sometimes surprising or unclear behavior, and we walked through it trying to fill the gaps.
As a result, Noah wrote a great article called “Does ActionCable Smell Like Rails?“. This article is a reflection of a seasoned developer, the framework expert, on the evolution of Rails. Something bothered Noah (“A Rails API is often carefully polished… ActionCable isn't there yet”), and he tried to find the answer for himself and share his findings with the community—I believe the latter was more important to him than the former. That was Noah. That’s what we all will miss ❤️.