Feedforce Developer Blog

フィードフォース開発者ブログ

Kaigi on Rails 2025 「動的に変化できることを信じて」

はじめに

こんにちは、thiger7です。2025年9月26日(金)〜27日(土)に開催されたKaigi on Rails 2025に参加してきました。私にとっては2回目の参加となる本カンファレンスですが、今回も多くの学びと刺激を得ることができました。興奮冷めやらぬうちに、参加レポートをお届けします。

Kaigi on Rails 2025で得た学び

今回特に印象的だったのは、RailsとAWSを組み合わせた実践的な発表でした。私自身、最近業務でAWSをキャッチアップする機会があり、前回参加時と比べて格段に理解が深まったことを実感しています。

Kaigi on Railsの魅力は、なんといっても実際のプロダクト運用から得られた生の知見を惜しみなく共有してくれることです。明日から試せる実践的なアイデアをたくさん持ち帰ることができました。

登壇を聞きながら「自分も同じような課題に直面していた」「この言語化は素敵だ」と何度もうなずく場面があり、2日間があっという間に過ぎていきました。前回から1年という短い期間でしたが、自分自身の理解度が深まったことを実感でき、カンファレンス全体の充実度も増していると感じました。

また、今回の参加を通じて改めて感じたのは、Ruby on Railsコミュニティに流れる知識共有の文化です。それぞれが現場で得た学びを惜しみなく共有し、その知見がまた別の現場で活かされていく、こうした循環の中に自分も参加できることを嬉しく思いました。技術的な探究心と実務への応用、この両方を大切にする雰囲気がカンファレンス全体に流れていて、初学者から経験者まで、誰もが何かを得られる場になっていることが印象的でした。

イベント概要

Kaigi on Rails 2025

Kaigi on Rails 2025

  • 日程:2025年9月26日(金)〜27日(土)
  • 会場:JP TOWER Hall & Conference(KITTE丸の内 4,5階、JR東京駅 徒歩約1分)
  • 形式:オンライン・オフラインのハイブリッド開催

「初学者から上級者までが楽しめるWeb系の技術カンファレンス」をコアコンセプトとするKaigi on Railsは、技術カンファレンスへの参加障壁を下げることを意図して企画されています。また、Railsを中心としながらも、フロントエンドやプロトコルなど、Webに関する幅広いトピックを扱うのが特徴です。

主要セッション紹介

今年のカンファレンスでは、非同期処理の最適化、Rails 8の新機能、実際の障害事例、アーキテクチャ設計、そしてAI時代の開発者の役割といったテーマが中心となっていたと思います。特に印象深かった11のセッションをDay1、Day2に分けてご紹介します。

Day 1

Keynote: dynamic! (moro氏)

キーポイント

  • 継続的な改善と動的な変化の重要性
  • 初回ハッピーパスから始めるシンプルな開発
  • 動くソフトウェアでの対話とアジャイルソフトウェア開発宣言との共通点

実践への活用

新規開発では完璧を求めすぎず、動的に変化できる柔軟性を持って、シンプルな実装から始めることの大切さを学びました。変化できることを信じられることの大切さも心に響きました。

そのpreloadは必要?──見過ごされたpreloadが技術的負債として爆発した日 (mugi氏)

キーポイント

  • 不要なpreloadによるOut of Memory障害の実例
  • preloadのメモリコストを意識する重要性
  • 継続的なコードの見直しと削除の必要性

実践への活用

N+1問題の解決策として安易にpreloadを使うのではなく、実際の使用状況を確認し、不要になったpreloadは積極的に削除していく運用を心がけたいと思います。

もう並列実行は怖くない コネクション枯渇とデッドロック解消の実践的アプローチ (katakyo氏)

キーポイント

  • コネクションプールサイズの適切な設定方法
  • Sidekiqのconcurrency設定とコネクション数の関係
  • デプロイ時の新旧共存を考慮し、総コネクション数をRDSのmax_connectionsの半分に制限する設計

実践への活用

AI機能の実装で並列処理が必要になる場面が増えているため、コネクションプール管理の具体的な計算式と監視方法はすぐに試してみたい知識でした。

5年間のFintech × Rails実践に学ぶ - 基本に忠実な運用で築く高信頼性システム (ohbarye氏)

キーポイント

  • 規制産業のソフトウェアでの品質特性
  • 検算/集計でデータ整合性を検知する仕組み
  • Runbook整備とインシデント対応体制

実践への活用

信頼性を重視するシステムでは検算の仕組みやRunbook整備など、地道な改善の積み重ねが大切なのだと学びました。

Railsによる人工的「設計」入門 (Yasuko Ohba氏)

キーポイント

  • 完成形をイメージしてから中核的価値の実現を逆算する設計手法
  • システムコンポーネントと設計パターンの組み合わせ方
  • 初学者でも実践できる「人工的」な設計スキルの習得方法

実践への活用

AIコーディング時代においても、完成形から逆算して設計する手法を身につけることで、体系的な設計ができるようになることを学びました。設計は天性の才能ではなく、意図的に習得できるスキルだと知ることができました。

Day 2

ActiveRecord使いが知るべき世界:Java/Go/TypeScriptのORMアプローチ比較 (河野裕隆氏)

キーポイント

  • ActiveRecordはオールインワンなORM
  • PrismaはActiveRecordに近い思想
  • DSLの表現力を重視したActiveRecordの設計思想

実践への活用

他言語のORMを知ることで、ActiveRecordの特徴がより理解でき、TypeScriptプロジェクトでPrismaを選択する際の参考になりました。

履歴 on Rails : Bitemporal Data Modelで実現する履歴管理 (hypermkt氏)

キーポイント

  • 有効期間とシステム期間の2つの時間軸による正確な時点再現
  • ActiveRecord::Bitemporal gemによる複雑なSQLの隠蔽
  • 履歴運用の課題としてデータ調査の困難さとシステムの複雑化

実践への活用

Bitemporal Data Modelは監査や履歴管理に強力ですが、SQLの複雑化やレコード数の増加といったトレードオフがあることを知りました。導入前に「本当にその履歴が必要か」「どこまで適用するか」を慎重に検討し、必要な箇所にのみ適用することが大切だと学びました。

Sidekiq その前に:Webアプリケーションにおける非同期ジョブ設計原則 (morihirok氏)

キーポイント

  • 「本当に非同期ジョブは必要か?」を問う重要性
  • 短時間で終わるシンプルな処理への分割
  • Rails 8.1のActive Job Continuationへの期待

実践への活用

非同期処理の導入前に、バッチ処理で十分ではないかを検討し、必要な場合も「非同期ジョブは短時間で終わるシンプルな処理にする」といった原則を守ることで、運用しやすいシステムを構築できることを学びました。

Railsアプリから何を切り出す?機能分離の判断基準 (yumu氏)

キーポイント

  • 完璧な分離は存在せず、トレードオフを理解した上での判断が重要
  • チームの状況によって判断軸の優先度は変わる
  • 分離された機能はAIが理解・活用しやすいという新たな観点

実践への活用

マイクロサービス化に「正解」はなく、チームの成熟度や状況に応じて判断基準を調整する必要があることを学びました。また、AI時代において「分離された機能の方がAIが理解しやすい」という新しい視点も興味深く、失敗を恐れずに実践していきたいと思いました。

非同期処理実行基盤、Delayed脱出〜SolidQueue完全移行への旅路 (Shohei Kobayashi氏)

キーポイント

  • Delayed JobからSolid Queueへの移行戦略
  • enqueue_after_transaction_commitの重要性
  • 内部実装を理解することの大切さ

実践への活用

Solid Queueは高速だが過負荷になりやすいという特性があることを知り、段階的な移行と内部実装の理解が成功の鍵となることを学びました。

rails g authenticationから学ぶRails 8.0時代の認証 (Shinichi Maeshima氏)

キーポイント

  • Rails 8の認証ジェネレータから生成されるコードを教材として認証を学ぶ
  • ログインセッションの管理など、見落としがちな考慮点の存在
  • タイミングアタックなど、セキュリティ特有の攻撃手法への対策

実践への活用

認証機能は一見シンプルに見えても、セッションの持ち方やタイミングアタック対策など、多くの考慮点があることを学びました。Rails 8の認証ジェネレータのコードを読み込むことで、セキュリティのベストプラクティスを学ぶとともに、継続的な技術力向上と最新情報のキャッチアップが大切だと実感しました。

その他の講演内容・スライド

今回ご紹介できなかった講演のスライドや詳細については、以下のページにまとめられています。どの講演も非常に興味深い内容となっていますので、ぜひご覧ください。

Kaigi on Rails 2025 - ruby-jp

技術的な学びのまとめ

今回のKaigi on Railsを通じて、特に印象に残った5つのテーマを振り返ってみます。

  1. 非同期処理とパフォーマンス最適化
    AI時代に向けて、並列処理や非同期ジョブの適切な設計がますます重要になっていることを学びました。コネクションプール管理やSidekiqの設定、Delayed JobからSolid Queueへの移行戦略など、具体的な数値を交えた実践的な知見が参考になりました。特に「本当に非同期処理が必要か?」という根本的な問いから始めることの大切さが心に残っています。

  2. Rails 8の新機能と実装の理解
    認証ジェネレータやActive Job Continuationなど、Rails 8の新機能が開発をシンプルにしてくれることを知りました。同時に、生成されたコードを理解し、タイミングアタックなどのセキュリティリスクを把握することの必要性も学びました。

  3. 実際の障害事例から学ぶ運用の重要性
    preloadによるメモリ枯渇、トランザクション内での非同期処理、データ整合性の検算など、実際の障害事例とその対策を聞くことができました。地道なRunbook整備や監視の仕組みが、システムの信頼性を支えていることがよく分かりました。

  4. アーキテクチャ設計における判断の難しさ
    モノリスからの機能分離に「完璧な答え」はなく、チームの状況やビジネス要件に応じたトレードオフがあることを学びました。Bitemporal Data Modelのような高度な履歴管理も、その複雑さを理解した上で必要な箇所にのみ適用することが大切だと知りました。

  5. AI時代における開発者の役割の変化
    AIがコードを生成できる時代において、完成形から逆算する設計力がより重要になっていることを感じました。分離された機能の方がAIが理解しやすいという新たな視点も興味深く、開発者に求められるスキルセットが変化していることを実感しました。

おわりに

moro氏のKeynote「dynamic!」のメッセージのように、私たち開発者も環境に合わせて動的に変化し、成長を楽しむことが大切なのだと感じました。技術の進化を恐れず、むしろその変化を楽しみながら、開発者としての道を歩んでいきたいと思います。

次回のKaigi on Rails 2026は、ベルサール渋谷ガーデンでの開催が決定し、さらに規模を拡大するとのことです。来年はより深くカンファレンスを楽しめるよう、これからの1年間、技術の探究を続けていきたいと思います。

このような学びの場を創り上げてくださった運営スタッフやスポンサーの皆様、貴重な知見を共有してくださった登壇者の皆様、そして共に学びを深めた参加者の皆様に、心より感謝申し上げます。

来年のKaigi on Rails 2026も楽しみにしています!

参考:会場の様子

Kaigi on Rails 2025の会場の雰囲気を写真でお伝えします。

エントランス

エントランス1
エントランス2

フロアマップ

フロアマップ

Hall Red

メイン会場となるHall Redでは、KeynoteやスポンサーLTが開催されました。昨年よりも横に広い会場レイアウトで、より多くの参加者が快適に視聴できる環境が整えられていました。

Hall Red 案内看板
Hall Red 会場

Hall Blue

約300人収容可能なHall Blueでは、各セッションで参加者の熱気を感じることができました。

Hall Blue 案内看板
Hall Blue 会場

Waiwai Room

参加者の交流スペースとなるWaiwai Roomでは、コーヒー、ドリンク、軽食が提供され、ホワイトボードでの議論も可能でした。株式会社B4A様のドーナツも美味しくいただき、Afternoon breakでリフレッシュできました。

Waiwai Room 案内看板
ドーナツ

ランチ

Lunch breakには、美味しいサンドイッチが提供されました。

サンドイッチ

書籍販売コーナー

書籍販売コーナー

スポンサー一覧

スポンサー一覧

温かい雰囲気の中で、たくさんの学びを得ることができた2日間でした。

本当にありがとうございました!