iTranslated by AI

The content below is an AI-generated translation. This is an experimental feature, and may contain errors. View original article
🛤

I Attended Kaigi on Rails 2025

に公開

I attended Kaigi on Rails 2025, which was held on September 26 and 27, 2025.

I've been using Ruby for quite a while (about 28 years?), but I've only been using Rails for less than 4 years, so I'm still a novice.
This was my first time attending Kaigi on Rails in person.

My company covered the participation, travel, and accommodation fees, so I spent some time minding the booth.

https://x.com/smarthr_dev/status/1971760739699642769

The presentation slides are compiled here, which is very convenient.

https://scrapbox.io/ruby-jp/Kaigi_on_Rails_2025

Below are the sessions I attended.

Day1

SponsorLT

For some reason, there was a painful story during the Sponsor LT about an engagement being broken off right before a wedding.

https://x.com/tmtms/status/1971397297243291711
https://x.com/tmtms/status/1971397574671335710
https://x.com/tmtms/status/1971398775014031807
https://x.com/tmtms/status/1971399064249040951
https://x.com/tmtms/status/1971401362740244874

Keynote: dynamic!

https://speakerdeck.com/moro/dynamic

I think the talk was about how, when building apps with Rails, you shouldn't solidify the design from the start but instead build it while thinking. Rails is well-suited for agile development.

https://x.com/tmtms/status/1971402745774211394
https://x.com/tmtms/status/1971405482301735346
https://x.com/tmtms/status/1971405662421983715
https://x.com/tmtms/status/1971408807978012805

Build advanced UI/UX with Hotwire

https://speakerdeck.com/naofumi/uxkosohotwiredezuo-rou-kaigi-on-rails-2025

I'm not very good at frontend so I didn't understand it all that well, but I don't like React, so I'd like to try using Hotwire.

https://x.com/tmtms/status/1971436114402742612

Introduction to FormObject

https://speakerdeck.com/expajp/an-introduction-to-formobject

There were several things that felt off to me, so it didn't quite sink in.

  • It's only called a model if it's a class inheriting from ActiveRecord
  • Form objects are not models
  • Using Form objects is not the Rails Way

…and so on.

I think it's fine to consider a Form object as a model for handling data related to multiple ActiveRecord models passed in a single request in the Rails Way.

https://x.com/tmtms/status/1971443378714968473
https://x.com/tmtms/status/1971444524707889622
https://x.com/tmtms/status/1971445012111184232
https://x.com/tmtms/status/1971446286521082079

No more fear of parallel execution: Practical approach to solving connection exhaustion and deadlocks

https://speakerdeck.com/katakyo/moubing-lie-shi-xing-habu-kunai-konekusiyonku-ke-jie-xiao-notamenoshi-jian-de-ahuroti

This talk was about connection pool exhaustion, but I think setting the maximum number of connection pools to something like 1000 roughly is probably fine.
Since the number of connections to the RDB is determined by the number of processes and threads, it doesn't seem necessary to calculate the maximum number of connection pools strictly and keep it small.

https://x.com/tmtms/status/1971451443044548630
https://x.com/tmtms/status/1971454173259702314

Bridging Hotwire and frontend frameworks with Web Components

https://speakerdeck.com/da1chi/bridging-with-web-components

Custom Elements are great. I love that you can create your own elements using standard HTML features.

Learning from 5 years of Fintech x Rails practice - Building highly reliable systems through adherence to basics

https://speakerdeck.com/ohbarye/5-years-fintech-rails-retrospective

https://x.com/tmtms/status/1971476700673474613
https://x.com/tmtms/status/1971477743440363620

1500 examples in 2 minutes! Environment construction techniques for lightning-fast CI

https://speakerdeck.com/falcon8823/2fen-tai-de1500exampleswan-zou-bao-su-ciwozhi-eruhuan-jing-gou-zhu-shu-kaigi-on-rails-2025

Various strategies for speeding up CI.
GitLab is nice because it's feature-rich. GitHub is catching up, though.
The punchline was great.

https://x.com/tmtms/status/1971483605525528800
https://x.com/tmtms/status/1971484763975487871
https://x.com/falcon_8823/status/1971490939333222470
https://x.com/tmtms/status/1971491262911164765
https://x.com/tmtms/status/1971485107669340359
https://x.com/tmtms/status/1971485665666941113
https://x.com/tmtms/status/1971485924929438208

Thinking about Service classes again — 10 years as a Rails developer

https://speakerdeck.com/joker1007/jin-gai-meteservicekurasunituitekao-eru-arurailskai-fa-zhe-no10nian

Joker apparently wrote the Service class section for "Perfect Ruby on Rails".
However, he mentioned that he now thinks it's better not to use them.
Well, I guess you can just create appropriate classes for all business logic and put them in models, even if they don't inherit from ActiveRecord.
I didn't quite understand the talk about Modular Monoliths toward the end.

https://x.com/tmtms/status/1971502482305274148
https://x.com/tmtms/status/1971503433665695825

Day2

Double Request Complete Conquest HANDBOOK

https://speakerdeck.com/shoheimitani/double-request-handbook

It seemed like a presentation with many useful tips.

Range on Rails — Why the "Multirange Type" as a New Option Dramatically Simplified Complex Logic

Just recently, when handling time-series data became complex, I was able to simplify it by creating a Ruby class for multirange types. I didn't know PostgreSQL had a multirange type. It might be good to try it out.

https://x.com/tmtms/status/1971790553491882158
https://x.com/tmtms/status/1971791100651491653
https://x.com/tmtms/status/1971792488026501392

Infrastructure for Asynchronous Processing, Escaping Delayed — The Journey to Full Migration to Solid Queue.

https://speakerdeck.com/srockstyle/fei-tong-qi-chu-li-shi-xing-ji-pan-delayedtuo-chu-solid-queuewan-quan-yi-xing-henolu-lu

Solid Queue looks good.

https://x.com/tmtms/status/1971798186374348801

Authentication Infrastructure Service Built with Domain-Specified Cookies and Shared Redis Between Services

https://slides.com/kokuyouwind/kaigi-on-rails-2025

"Complex Data Processing × Static Site" Compatibility: Low-Effort Rails Operations

https://speakerdeck.com/hogelog/a-low-effort-rails-workflow-that-combines-complex-data-processing-x-static-sites

Authentication in the Rails 8.0 Era Learned from rails g authentication

https://speakerdeck.com/willnet/rails-g-authenticationkaraxue-hurails8-dot-0shi-dai-noren-zheng

I learned a lot. It feels like rails g authentication just creates a boilerplate for an authentication system, so it seems like it's aimed at people who want to build their own authentication system from scratch.

https://x.com/tmtms/status/1971841254154817767
https://x.com/tmtms/status/1971843175204769887
https://x.com/tmtms/status/1971844468661014772
https://x.com/tmtms/status/1971845075937513671

Keynote: Building and Deploying Interactive Rails Applications with Falcon

Falcon looks promising.

Closing

Kaigi on Rails was really great.

There were many topics that seemed more directly useful for my job compared to RubyKaigi or RubyWorld Conference, so I ended up listening with a work-oriented mindset.

Bonus

https://x.com/tmtms/status/1971795533728829461

Discussion