はじめに
2025年9月4日・5日とオランダ、アムステルダムで行われたRails World2025に現地参加するので、カンファレンス概要をまとめます。
【TODO:アムステルダムの写真1】
【TODO:アムステルダムの写真2】
Rails Worldとは?
The Rails Fundationが主催するRuby on Rails公式のカンファレンスで2023年から年に一度開催されています。Ruby on Railsの作者であるDHH氏の講演の他、Ruby on Railsを使用する世界的な企業のキーパーソンが登壇します。過去には Rails World2023【アムステルダム】、Rails World 2024【トロント】 を開催しており、今回が3度目の開催です。イベント参加費用は年々上昇しており、今回は法人チケット: €899、一般チケット: €499になっています。2023年は45分でチケット完売。2024年の一般チケットは販売開始から20分で完売。本年の一般チケットは増枠したのにもかかわらず販売開始直後たった2分で完売しました。
備考: 「Rails Foundation」誕生、CookpadやGitHubなどが創立に携わる
イベント情報
イベント名 | Rails World | ||
---|---|---|---|
主催 | The Rails Fundation | タイムテーブル |
Agenda Day1 Agenda Day2 |
開催日 | 2025年0月4日(木) - 5日(金) | 会場 | Beurs van Berlage |
セッション
今回、主催側が用意した専用アプリでトークセッションを整理することができました。以下自分が行こうと考えているセッションの予定リストです。
Day1
09:45 - 11:00 Lightning Talks #Rails World Opening Keynote
- 登壇者:DHH( @dhh )
- セッション概要
- DHHがアムステルダムで開催される第3回Rails Worldをオープニング基調講演で開始します。この講演では、今日のRailsの新機能と、フレームワークの今後の方向性について強調します
11:15 - 11:45 Multi-Tenant Rails: Everybody Gets a Database!
- 登壇者:Mike Dalessio
- セッション概要
- マルチテナントRails: みんなにデータベースを!
RailsのSQLiteサポートが改善されたことで、ついに真のマルチテナントRailsアプリケーションが可能になりました - 各アカウントのための隔離されたデータ! - パフォーマンスや使いやすさを犠牲にすることなく。このトークでは、Rails内のテナントデータをどこでも隔離するための新しい、実績のあるアプローチを説明します:データベース、フラグメントキャッシュ、バックグラウンドジョブ、Active Storage、Turbo Streamブロードキャスト、Action Mailer、さらにはテストフレームワークまで。
新しいマルチテナントアプリを構築する方法や、既存のアプリを移行する方法を学びます。Railsがどのように複数のテナントと厳格なデータ隔離をサポートできるかの技術的詳細も学べます。マルチテナントアプリのライブデモもご覧いただけます。そして、このようなデプロイメントトポロジーがあなたにとってどのように意味を持つか、またどのようにスケールアップおよびスケールアウトするかを学びます。
- マルチテナントRails: みんなにデータベースを!
13:00 - 13:30 Teaching Rails with the Real Thing: Onboarding Engineers into a (Massive) Monolith
- 登壇者:Katarina Rossi
- セッション概要
- 本物でRailsを教える:エンジニアを(巨大な)モノリスにオンボーディングする
Procoreでは、私たちのRailsモノリスは非常に大規模で、世界でも最大級のものです。新しいメンバーにとっては intimidating(威圧的)です。私は、900人以上の異なるスキルレベルのエンジニアがこのモノリスを恐れないようにするためのコースを設計し、教えました。一般的なチュートリアルを使用するのではなく、彼らが実際に取り組む製品に基づいてすべてを構築しました。Railsの基本を、彼らが本当に必要とするドメイン固有の知識と組み合わせて教えました。このトークでは、学習科学、製品コンテキスト、深いアプリ知識がどのように結びついて私たちのコースを成功させたか、そしてそれをあなたのチームにどのように適応できるかを共有します。
- 本物でRailsを教える:エンジニアを(巨大な)モノリスにオンボーディングする
13:45 - 14:15 Resumable Jobs with Active Job Continuations
- 登壇者:Donal McBreen
- セッション概要
- Active Jobの継続による再開可能なジョブ
長時間実行されるジョブは問題を引き起こす可能性があります。デプロイを遅らせたり、古いバージョンのコードが予想以上に長く実行され続けたりすることがあります。それらを中断すると、データが不整合な状態になったり、冗長な再作業を引き起こしたりすることがあります。
Active Jobの継続を使用すると、進捗を追跡するためのマルチステップワークフローやチェックポイントの反復を定義でき、既存のジョブとの統合も簡単です。そこから、アプリケーションの再起動を跨いでジョブを中断および再開する処理を行います。
私たちは37signalsでActive Jobの継続を構築し、BasecampのジョブをKamalでデプロイするためにコンテナフレンドリーにしました。このトークに参加して、どのように機能するかを学びましょう。
- Active Jobの継続による再開可能なジョブ
14:45 〜 15:15 From Chaos to Clarity: Structured Event Reporting in Rails
- 登壇者:Adrianna Chang( @adriannakchang )
- セッション概要
- Railsアプリケーションのイベントは、コードの心拍のようなものです。ログ、テレメトリ信号、ビジネスイベントなど、何か興味深いことが起こっているときに私たちに知らせてくれます。これらのイベントの力を観測性やデータ分析に真に活用するためには、高品質で文脈に基づいたデータが必要です。Rails.loggerが提供する人間が読める行は手動検査には適していますが、プロダクションや分析の文脈では不十分です。
Shopifyでは、イベントに対する統一的なアプローチの必要性を認識しました。構造化ログのためのさまざまな社内ソリューションを管理する数年の後、Railsフレームワーク自体に構造化イベントのサポートを組み込みました。このトークでは、Railsの新しい構造化イベントアプローチである「構造化イベントレポーター」を紹介し、私たちがモノリス内のイベントを駆動するためにどのように使用しているかを示します。
- Railsアプリケーションのイベントは、コードの心拍のようなものです。ログ、テレメトリ信号、ビジネスイベントなど、何か興味深いことが起こっているときに私たちに知らせてくれます。これらのイベントの力を観測性やデータ分析に真に活用するためには、高品質で文脈に基づいたデータが必要です。Rails.loggerが提供する人間が読める行は手動検査には適していますが、プロダクションや分析の文脈では不十分です。
15:45 〜 16:15 Active Record 8: Resilient by Default
- 登壇者:Hartley McGuire
- セッション概要
- アクティブレコード8:デフォルトでレジリエント
データベースはクラッシュし、接続は切断され、クエリは最悪のタイミングでタイムアウトします。どこにでもカスタムのリカバリーコードを書くのではなく、Railsはアクティブレコードがこれらの避けられない問題を処理する方法を革命的に変えています。
この技術的な深堀りでは、Rails 7で導入され、Rails 8で最適化された接続管理、エラーハンドリング、および回復戦略の重要な改善点を探ります。アクティブレコードが接続プールをどのように賢く管理し、失敗したクエリを再試行するかを学ぶことができます。
大規模なプロダクションアプリを運営している場合でも、新しいサイドプロジェクトを構築している場合でも、データベースの混乱が発生したときにアプリケーションが壊れるのではなく、曲がるようにこれらの機能を活用する方法を学んで帰ることができます。
- アクティブレコード8:デフォルトでレジリエント
16:30 〜 17:30 Day 1 Closing Keynote: Hotwire Native - A Rails Developer’s Secret Tool for Building Mobile Apps
- 登壇者:Joe Masilotti ( @joemasilotti )
- セッション概要
- Hotwire Nativeは、App StoreやGoogle Playでネイティブアプリを立ち上げるためのハードルを下げます。Rails開発者は、スタック全体を書き直すことなく、iOSとAndroidにアプリを出荷できるようになりました。
既存のHTMLとCSSを再利用することで、ビジネスロジックをサーバーに保持し、Railsで生産性を維持することができます - モバイルの専門家になる必要はありません。
小規模なチームがより早く出荷し、ソロ開発者が不可能を可能にし、Railsが再び先頭に立っている方法を学びましょう。
- Hotwire Nativeは、App StoreやGoogle Playでネイティブアプリを立ち上げるためのハードルを下げます。Rails開発者は、スタック全体を書き直すことなく、iOSとAndroidにアプリを出荷できるようになりました。
Day2
10:00 - 11:00 Ruby & Rails - a Chat with Maintainers
- 登壇者
- Hiroshi Shibata
- Aaron Patterson( @tenderlove )
- Jean Boussier( @_byroot )
- Robby Russell( @robbyrussell )
- セッション概要
- Rails CoreとRuby Coreチームのメンバーが一堂に会し、RubyとRailsエコシステムにおける開発者体験の未来について深く掘り下げます。Aaron PattersonとJean Boussierは、RailsとRubyの両チームに所属しており、RubyコミッターでツールメンテイナーのHiroshi Shibataと共に、RubyGems、Bundler、RDoc、Debug、ERBなどの基盤ツールをどのように改善して、特に新規ユーザーにとって言語とフレームワークをより歓迎するものにできるかを議論します。
この会話はRobby Russellがホストし、RubyとRailsをどのように進化させ、すべてのレベルの開発者にとってよりアクセスしやすく、楽しく、強力なものにできるかを探ります。
- Rails CoreとRuby Coreチームのメンバーが一堂に会し、RubyとRailsエコシステムにおける開発者体験の未来について深く掘り下げます。Aaron PattersonとJean Boussierは、RailsとRubyの両チームに所属しており、RubyコミッターでツールメンテイナーのHiroshi Shibataと共に、RubyGems、Bundler、RDoc、Debug、ERBなどの基盤ツールをどのように改善して、特に新規ユーザーにとって言語とフレームワークをより歓迎するものにできるかを議論します。
11:15 - 11:45 Ruby Stability at Scale
- 登壇者:Peter Zhui( @peterzhu2118 )
- セッション概要
- Rubyのスケールでの安定性
Railsアプリの安定性を監視する方法についてのトーク、記事、チュートリアルは多数あります。これらはバグの原因がアプリケーションコード、Rails自体、またはgemから来ると仮定しています。しかし、もし不安定の原因がRubyやネイティブgemから来る場合はどうでしょうか?Rubyがクラッシュした場合、監視やデバッグの方法はありますか?このトークでは、世界最大のRuby on RailsアプリケーションであるShopifyのモノリスにおけるRubyのクラッシュへの対処方法と、私たちの技術をどのように活用できるかを見ていきます。クラッシュの監視方法、デバッグ用のコアダンプの取得、クラッシュの防止、そして本番環境への影響を最小限に抑える方法などのトピックをカバーします。
- Rubyのスケールでの安定性
13:00 - 13:30 Make Rails AI-Ready by Design with the Model Context Protocol
- 登壇者:Paweł Strzałkowski( @realPawelS )
- セッション概要
- デザインでRailsをAI対応にする:モデルコンテキストプロトコル
DHHのデモでRailsスキャフォールドがウェブインターフェースを作成する喜びを覚えていますか?AI統合も同じくらい簡単にしましょう!
Railsスキャフォールドが人間のためのビューだけでなく、並行してAIインタラクションレイヤーを提供することを想像してみてください - すぐに使える形で!
どうやって?モデルコンテキストプロトコル(MCP)を用いて、設定よりも慣習を重視することで、AIアプリのインタラクションのための新しい標準(GoogleとOpenAIが支援)を受け入れます。例:ReservationsControllerをスキャフォールドし、MCPを介してAIエージェントが部屋を予約できるようにします - まるでエージェントが今日GitHubやJIRAを使うように。
私が示す内容:
・フルスタックのAI対応アプリをライブでスキャフォールド
・それを使用するAIエージェント
・バックエンド、フロントエンド、AIレイヤーの協力方法
・アプリをネイティブにAIと対話させる方法
最終的に、このトークはAI時代におけるRailsの競争優位性を示します。
- デザインでRailsをAI対応にする:モデルコンテキストプロトコル
13:45 - 14:15 Bringing Offline Mode to Hotwire with Service Workers
- 登壇者:Rosa Gutiérrez
- セッション概要
- オフラインモードをHotwireにサービスワーカーで追加する
Hotwireで最もリクエストの多い機能の一つがオフラインモードです。このトピックは37signalsにとって頻繁な頭痛の種であり、さまざまなカスタムソリューションを試みましたが、それぞれに独自の課題がありました。今年、私たちはサービスワーカーを使用してHotwireにオフラインサポートを追加することに決めました。サービスワーカーはPWAにとって長年の答えですが、注意点が多く、Hotwire Nativeアプリで正しく機能させるのは簡単な作業ではありません。このトークでは、これらの注意点について学び、それを回避する方法やHotwireオフラインの計画についてお話しします。
- オフラインモードをHotwireにサービスワーカーで追加する
14:45 〜 15:15 Introducing ReActionView: An ActionView-Compatible ERB Engine
- 登壇者:Marco Roth( @marcoroth_ )
- セッション概要
- ReActionViewの紹介:ActionView互換のERBエンジン
このトークは、2025年を通じて共有してきた旅の結論です。RubyKaigiでは、HTMLに対応した新しいERBパーサーとツールエコシステムであるHerbを紹介しました。RailsConfでは、Herbを基にした開発者ツール(フォーマッター、リンター、言語サーバー)をリリースし、Railsのビュー層を近代化し改善するビジョンを提示しました。
Rails Worldでは、ReActionViewを初公開します。これはHerbを基にした新しいERBエンジンで、.html.erbと完全に互換性がありながら、HTML検証、より良いエラーフィードバック、リアクティブな更新、組み込みツールを提供します。
これはRails Worldでの初の公開リリースであり、過去のトークからのすべてを結びつけ、Rails World 2023で最初に紹介したツールへの独占的なアップデートも提供します。
- ReActionViewの紹介:ActionView互換のERBエンジン
15:450 〜 16:15 Lessons from Migrating a Legacy Frontend to Hotwire
- 登壇者:Radan Skoric( @RadanSkoric )
- セッション概要
- レガシーフロントエンドをHotwireに移行する際の教訓
Hotwireは新しいRailsシナリオ専用で、成熟したアプリケーションには価値がないのでしょうか? そんなことはありません。
私は、Reactを中心とした技術の混合からHotwireへの移行を主導したHalalbooking.com(大規模なホテル予約ウェブサイト)からの学びを共有します。
Turbo Driveを有効にできなかったにもかかわらず、Hotwireの他の部分を使用することで大きなDXとパフォーマンスの向上を得ることができ、移行は十分に価値がありました。
具体的な例や学んだ教訓を共有します。成熟したコードベースにHotwireを導入することに楽観的な気持ちで帰ることができるでしょう。
ボーナスとして、以下の内容もご覧いただけます:
・いつ有益か
・どれくらい早く投資が回収できるか
・段階的に導入する方法
・複雑なHotwire UIの具体例2つ
- レガシーフロントエンドをHotwireに移行する際の教訓
16:30 〜 17:30 Rails World Closing Keynote
- 登壇者:Aaron Patterson (@tenderlove)
- セッション概要
- Rails World クロージング基調講演
このセッションが何についてなのか、あなたと同時に知ることになるでしょう。
- Rails World クロージング基調講演