RailsConf '23: The Highlights
Attending a RailsConf on-site was a long overdue (probably too long, actually) bucket list item here at Neocoast. And this year, we finally had the privilege of crossing it out! The experience was both nurturing and enjoyable, the community was as friendly as we expected, and we had some flavorful talks (literally) from very knowledgeable speakers.
This year’s presentations were an absolute pleasure to behold, and the work the community has put in during the year is clearly reflected on them. You can imagine our dismay when our team asked us to compile a selection of our favorite talks. Not due to the lack of good talks, but because we had to leave out of this list some worthy contenders. A laborious endeavor, to say the least.
A few disclaimers: this compilation focuses on the technical side of the conference, but it’s not meant to detract from the much-needed breathers that made the conference lively or the career-focused presentations. The recordings of the majority of these talks will become available on-demand in the future, so keep an eye out for them!
Without further ado, the actual list:
Applying Microservice Patterns
Guillermo Aguirre mixes up the best of both worlds while trying to find a proper balance in the architecture between microservices and monoliths. Sorting out the domain complexity of monolithic architectures by applying microservice patterns within the monolith, he builds a modular application that separates domain concerns and establishes communication channels between said domains.
With two separate databases, a Kafka stream and a dream, the application gets all of the microservice goodies without the hassle of managing multiple repos or infrastructural complexity. As always, everything comes with a price. Implementing these sorts of changes does bring in a new kind of complexity, especially when managing data consistency and configuration that's not your standard, run-of-the-mill Rails app. Nevertheless, this presentation was great food for thought and introduced some cool ideas that would be nice to see further developed in the future.
Integrating next-gen images in your Rails app
Juan Pablo Balarini makes a solid case of images being expensive. Social media is all about posts, avatars, thumbnails and whatnot, yet we are using image standards such as JPEG or PNG that have been around since Czechoslovakia was still a country. You’d think that technology would have evolved by now, wouldn’t you? It did, we’re just not using it and it’s costing us more than we know on storage and transfer.
The presentation focuses around WebP, a newer image format supported by all major browsers, and how to integrate the format within your Rails application. This was, surprisingly, not supported out-of-the-box for Rails, but this presentation motivated a PR and it got merged! You can expect to see the feature in upcoming releases.
Rails as a piece of birthday cake
Vladimir Dementyev is a seasoned veteran when it comes to putting eggs in their proper basket. You can’t bake a cake without eggs, and this presentation is all about the cake.
The MVC pattern that we all know and love might make for a nice and simple cake, but growing codebases and scaling to bigger teams could become a difficult task to manage. Even in simple cases, the principle of MVC gets bypassed by views running database queries, controllers hosting business logic, fat models with an abomination of responsibilities, you name it. We’ve all been there.
So, your cake is now pudding. How about a tablespoon of abstractions to make some new layers? Vladimir just scrapes off the tip of the iceberg here, but he presents a couple of patterns that could make your life easier. And the actual cake was delicious.
Exploring the Power of Turbo Streams and ActionCable
Kevin Liebholz tells a long-forgotten story, one full of magic, dragons and an epic battle of… tic-tac-toe? But this battle is unlike any other tic-tac-toe match you’ve ever seen before. The magic goes by the name of Turbo Streams, and thus we can see the battle develop in real time!
This presentation iterates over creating a game of tic-tac-toe, using Turbo Streams and ActionCable to make it live, and managing issues that come along with keeping things consistent across multiple live users. A Turbo Streams introduction for the ages!
Go Passwordless with WebAuthn in Ruby
Braulio Martinez brings to the table an everyday issue, and one that costs millions of dollars: passwords. Whether it’s people forgetting them, getting phished out of their accounts, or someone taking the time to brute force their way in, making sure your system is foolproof is not an easy task.
That’s where the WebAuthn standard comes in. WebAuthn is a set of rules devised to make registration and authentication strong, safe and accessible, by using device authentication alongside cryptographically-backed key exchanges. As Braulio mentions in his talk, the standard is relatively new and has a fair share of challenges ahead, but it’s backed by some of the bigger names in the industry and is headed towards relevance in the near future.