梶川 琢馬 ドメインイベント導入と責務分離の実践
保守・機能追加で副作用や依存の整理に悩む初級〜中級の開発者
ドメインイベント、使っていますか?
これは、注文完了やユーザー登録などビジネス上の“出来事”を表すモデルです。
状態変化を出来事として切り出すことで、副作用が見える場所にまとまり、設計の見通しが良くなります。
本セッションでは、既存コードに潜むイベントの見つけ方から始めて、責務分離から非同期処理への段階的なリファクタリング手順を紹介します。
小さな一歩から始められる実践に絞るので、無理なく取り入れられます。
ぜひ「あ、こう設計すればいいのか」という発見を持ち帰ってください!
hmatsu47(まつ) 2024 年の re:Invent で発表され、2025 年 5 月に GA(一般提供開始)となった Aurora DSQL。Google Spanner 対抗(?)のサーバーレス分散 SQL データベースとして注目を集めた割に、(2025 年 10 月中旬時点では)具体的な採用事例の話はほとんど聞きません。その一方で「従来の Aurora PostgreSQL から移行する形で採用しようとして失敗した」というネガティブな話は聞こえてきたりします。
(たぶんそれ、目的・用途に合わせたデータベース選定になっていなかったんじゃないかと…?)
私自身は、これまで「ゲームで体感!Aurora DSQL の OCC」(JAWS ミート 2025)や「攻略!Aurora DSQL の OCC」(JAWS FESTA 2025 in 金沢)などのセッションを通じて、Aurora DSQL のキモである OCC(楽観的同時実行制御)の特性を紹介・説明してきましたが、参加者の反応などから、やはり具体的なアプリケーションの実装例が示されないと理解が難しい印象を受けました。
というわけで、今回は架空の予約サイト(例:宿泊予約)の実装に Aurora DSQL を使い、
という一連の流れを、NG 実装例と比較しながら説明していきます。
【⭐︎1】 Aurora DSQL では OCC の特性上、同一キーを持つ行を挿入または更新する処理の実行(成功)が「必ずしもトランザクションの開始順・コミット順にならない」という問題があります。
→参考 : https://www.docswell.com/s/hmatsu47/ZJQYXX-aurora-occ-jaws-festa-20251011#p36
【⭐︎2】 Aurora DSQL には一般的な RDBMS が持つ行ロックの機構がないので、DBMS レベルでのロックを使わず、かつ一時確保した側が優先されるよう排他制御する必要があります。
■想定する参加者
一見難しそうですが、実際にはあまり高度な技術は使わない想定です。
(実装言語やフレームワーク・ORM(利用有無を含め)などは検討中です)
■注
micchie レビュー文化を根づかせることは、多くの組織が抱える永遠の課題です。
しかも、そのチームがエンジニアだけでなく、多職種で構成されているとしたらどうでしょうか。成果物も、SQL や Goole Apps Script のコード、Salesforce の設定、業務ドキュメントなど多岐にわたる。
この環境でレビューを機能させるには、「文化」ではなく「構造」と「スキルの定義」が必要でした。
本セッションでは、チームがゼロからレビュー文化を設計・実装し、非エンジニアを含む多様な職能のメンバーとともに運用可能にしたプロセスを紹介します。
話の中心はコードレビューの技術論ではなく、「レビューを通じて組織がどう変わるか」という組織デザインの話です。
わたしたちのチームでは、日々のアウトプットが事業運営の中枢を支えています。品質を守ることは単なる「きちんとした設計・コード」を超えて、事業そのものの信頼を守る行為でした。
わたしたちはまず、レビューを「品質の最終防衛線」ではなく、「リスクと知識の共有装置」として位置づけ直しました。
つまりレビューとは、属人化を防ぎ、チームの継続性と透明性を保つための仕組みです。
レビューを “誰かが見る” ではなく、“チームで引き受ける” 行為へと再定義した瞬間、ようやく文化づくりのスタートラインに立てました。
レビュー文化は「がんばってやろう」では定着しません。人によって判断が揺れ、レビューの粒度や責任の範囲がばらつくからです。
そのためわたしたちはまず、「どの成果物をどの粒度で、誰がレビューすべきか」を体系化しました。
レビューの種類は、実施可否、方針、成果物、実行の4段階。
単にコードを読むだけでなく、「そもそもこの業務をやるべきか」「どう設計するか」「どのように実行するか」までレビューを拡張しました。その上で、職能ごとにレビュー観点を明文化しています。
エンジニアは品質と再現性、マネージャーは優先度と工数、事業責任者はリスクと価値のバランス。法務・会計・税務といった専門家はそれぞれの観点でレビューに関与します。
こうした役割の整理によって、「誰がどの段階で判断するか」が明確になり、結果として、属人化のリスクが減少しました。
しかし、レビューの仕組みが整っただけでは十分ではありません。
チームの中には、エンジニアバックグラウンドを持つ人もいれば、業務設計や分析が得意なメンバー、ドキュメンテーションを中心に支えるメンバーもいる。
職能もバックグラウンドも違う彼らが「レビューにどう関わるべきか」を共有する必要がありました。
そこで導入したのが、スキルレベルと組織の Value をかけ合わせたマッピングです。それぞれの Value ごとに、個人がどのステップにいるのかを可視化できます。
これにより、「どのスキルが不足しているか」「次にどの段階を目指すべきか」を、レビューの中で対話できるようになり、レビューは単なる承認の場ではなく、成長と育成の場へと変わっていくのです。
レビューを日常の一部にするために、意識した設計思想が三つあります。
一つ目は、レビューの優先度を高く置くこと。
自分のタスクよりもレビューを優先する。
レビュー時間を毎日スケジュールに組み込み、チーム全体でレビューを止めないルールを明確にしました。
レビューはスピードを遅らせるものではなく、スピードを維持するための基盤です。
二つ目は、レビューを「会話」ではなく「仕組み」に落とすこと。
Design Doc のテンプレート、チケットの項目設計、リスクレベルの自動分類など、誰がやっても同じ流れになるよう設計します。
これにより、メンバーの習熟度に左右されず、レビューが安定的に回るようになりました。
三つ目は、レビューを個人の責任からチームの責任に変えること。
「誰がミスしたか」ではなく、「どの段階でリスクを拾えたか」を見る。
レビューの失敗を咎めるのではなく、次の改善サイクルに活かす。
こうして、レビューは「チェック」から「共創」に変わっていきます。
このセッションでは、チームが実際に取り組んだ「レビュー文化の仕組み化」と「スキルの可視化」の設計思想を、実例を交えて紹介します。
これまでの経験の蓄積から見えた、文化のつくり方を共有したいと思います。
yuhi ソフトウェア設計を学び始めたとき、設計原則として「責務を分けよう」「疎結合にしよう」と言われても、実際にどのような設計・実装をすればよいのか、具体的なイメージが湧きづらいと感じたことはありませんか?本セッションは、マインスイーパという身近なゲームを題材に、具体的な設計とコードを通じて、これらの設計原則への解像度を高める体験を提供します。
マインスイーパには、セルやその状態、ボード(座標平面)、プレイヤー操作、難易度など様々な概念が存在し、設計を思考しながら学ぶ題材として適切なゲームであると考えています。セルの開封のように単純なロジックに見えても、「セルは状態を持つのか?」「セルは座標平面に依存するのか?」「セルからその近傍のセルを隠蔽するべきなのか?」など考慮点が多く、設計次第でコードの拡張性や可読性が大きく変わります。
本セッションでは、そんなマインスイーパをRubyによる純粋なオブジェクト指向で設計していきたいと思います。主な設計トピックは下記の通りです。
これから設計を学びたい初学者や、日々の業務で「なんとなく設計している」中級者に向けて、責務と疎結合への解像度を高め、もう一歩深く設計を理解するヒントを持ち帰れるセッションを目指します。
昨今のAI時代において、私は初学者がAIに取って代わられないために重要なのは「設計」であると考えています。 しかし同時に、初学者がその設計力を育む経験を得づらい環境に置かれていることを危惧しています。
インターフェースを定める「設計」と、その実体である「実装」を比較したとき、事業へのインパクトがより大きいのは明らかに「設計」です。実装は情報が適切に隠蔽され、副作用がなければ容易に差し替え可能ですが、設計は他のモジュールにも波及し、システム全体の構造を左右します。
しかし近年、AIネイティブ世代の初学者が、この重要な「設計」までもAIに全面的に委ねてしまう傾向があると感じています。答えが定まらない中でも試行錯誤し、概念を言語化しながら思考を深める、そうした経験を経ずに、AIに舵を預けてしまっているのです。
私はその原因を、初学者が「設計のポイント」や「思考の取っかかり」を持たないことにあると考えています。
本トークは、そうした初学者の方々に対し、設計を自ら考え始めるための“思考の種”を提供するものです。設計入門の資料は数多くありますが、本トークでは具体的な事例と思考プロセスの両面から、より実践的に「設計」を掘り下げます。
Masaki Suzuki 【テーマ】
・ Amazon Simple Email Service(以下「Amazon SES」)でのメール受信についての話
【想定する参加者層】
・ Amazon Web Service(AWS)を扱っている方(主に業務で)
・ Amazon SESを扱った経験、およびAmazon SESでのメール受信の経験は不問です。(経験がない方でも十分理解できる内容となっています)
【トーク概要】
AWSでメールを扱う際にAmazon Simple Email Service(以下「Amazon SES」)を使用することが多いと思います。
「メール送信は経験があるが、受信についてはなかなか扱うことが少ない」という方もいるかもしれませんが、2023年に東京リージョンでもAmazon SESがメール受信に対応したことで、これからAmazon SESでのメール受信に対応するケースも増えてくると思います。
そして受信メールはAmazon SNS/AWS Lambda/Amazon S3で扱えるのですが、これらサービスごとの仕様・制約が大きく異なっており、ビジネスアプリなどで受信メールを扱うのはなかなか一筋縄ではいかないのも事実です。
そこでこのセッションでは、実際に私がAmazon SESでのメール受信をビジネスアプリに組み込んだ経験から
・ Amazon SESでのメールの受信方法
・ Amazon SNS/AWS Lambda/Amazon S3それぞれで受信メールを扱う際の注意点
・どういうケースでどの手法を選択するのが良いのか
などについてお話したいと思います。
【セッションゴール】
・ Amazon SESについて、「受信メールの受信方法」および「受信メールを扱うサービスごとの仕様・制約」を理解できるようになる
・ ビジネスアプリにAmazon SESでのメール受信を組み込む際に「どういう点に気を付けた上で、どういうケースでどの手法を選択するのかが良いか」がある程度理解できるようになる
ryo Baseline Tooling Hackathon に参加し、インストール不要で npx で実行出来る baseline-search というツールを作成しました。
Baseline とは何なのかにも触れつつ、私が作成したツールのご紹介と、ハッカソンに参加して得られた経験を共有出来ればと思います。
梶川 琢馬 Monorepoによるパッケージ境界と依存の再設計
フロントエンドのMonorepo移行を検討している中級者
複数のサービスを運用する中で、コードの重複、責務の曖昧さ、変更時の影響範囲の広さに悩んでいませんか?
本セッションでは、4つのフロントエンドアプリケーションを1つのMonorepoに統合した事例をもとに、統合を起点に進めたリアーキテクトを紹介します。
パッケージの責務境界を見直し、共通コンポーネントと依存関係を整理することで、開発体験を改善しました。
Monorepoへの統合プロセスとツール選定から、責務分離を軸にしたアーキテクチャ再設計の手法まで、実践的なヒントをお届けします!
takao2704 RAGだけでは解決できないIoTサービスに関する問い合わせに対応するため、Bedrockのmulti-agentで“行動するAIサポート担当”をつくってみた話です。
IoTサービスの運用では「通信が切れた」「データが届かない」といった問い合わせが日常的に発生します。原因はデバイス設定/通信回線/クラウド構成など多岐にわたり、担当者はドキュメントを参照しつつAPIで現状を確認して総合的に判断します。本セッションでは、この“調べて→判断して→提案する”プロセスを支援するために、Amazon Bedrock上で動作するマルチエージェント構成を試作した知見を紹介します。
「通信が切れた」などのケースで、一般的な確認手順と実ステータスの両面から原因候補と対応を導く流れを解説します。エージェント間のコンテキスト共有、RAG結果とAPIレスポンスの整合、失敗時のハンドリングなど、設計と運用での工夫も共有します。
最終的には、自分が日常的に行っている問い合わせ対応をどこまでAIに任せられるかを評価しました。
髙橋透 みなさん、アウトプットしてますか?ブログ執筆やカンファレンス登壇など、エンジニアにはアウトプットの機会が他の業種に比べて多くあると思います。情報は発信する人の周りに集まる、という言葉もあるように、アウトプットをすることによる良い効果は多く存在します。
とはいえ、世の中の全エンジニアがアウトプットをすべきかと言われると、それはまた違うと思います。他人に強いられてやるものではないし、好きじゃないと続かない行為だと思います。しかし、ハマる人には超ハマります。
私は今までで約100本のブログ記事の執筆と14回の登壇をしてきました。アウトプットに対する私のモチベーションとアウトプットがもたらす良い効果についてお話しします。
nakao-shogo 生成AIがテストを自動作成し始めた際、実装=テストで実装され潜在的不具合を含んだまま、とりあえずテストが存在するみたいな状況が多くなってきたのではないでしょうか?
今一度単体テスト/結合テストについて考えて、生成AIが成果を発揮するための方法を一緒に考えましょう。
Yuta Endo Bunでバックエンドを構築する際、可観測性確保のためにDatadog APMを導入しました。
dd-trace ライブラリはBunを正式サポートしていませんが、工夫次第で本番環境での運用が可能です。
実際に導入を進める中で、スパンは取得できるものの、スパンが関連付けされず、トレースとしてまとまらない問題に直面しました。
Node.jsでは自動で行われるリクエストコンテキストの伝播が、BunとHonoの組み合わせでは効かないことが原因でした。
本セッションでは、この問題の「なぜ」を技術的に深掘りします。
Node.jsでの自動計装の内部メカニズム(モジュールパッチング、AsyncLocalStorageによるコンテキスト管理)を解説し、Bunとの違いがどう影響するかを分析します。
また、Bunでもdd-traceサポートの対応がなされていますが、何をカバーし、何が不足していたのかも明らかにした上で、解決策を紹介します。
対象者: BunやHonoに興味がある方、APM導入を検討している方、ランタイムの内部動作や自動計装の仕組みに関心がある方
村井亮介 エンジニアは技術的負債、レガシーコードの刷新、そしてリポジトリの統合といった、避けては通れない大規模なリファクタリング課題に直面します。
私はMOSHというクリエイター向けプラットフォームの開発において、8年近く運用されてきた(自らが積み上げた)負債「旧リポジトリ」の撲滅という大きな挑戦に直面しました。
膨大なコード量、複雑に絡み合った依存関係、そして不足したドキュメント。
従来の手法では数年かかると思われた作業を、AI(Claude + Cursor)とのペアプログラミングによって約100日で完遂しました。
この取り組みを通じて、「AIは単なる補助ツールではなく、最高のペアプログラミングパートナーであり、心の友である」という確信を得ました。
本セッションでは、AIの活用術ではなく、私がなぜ「旧リポジトリからもう逃げない」と決めたのか。
AIという存在がそれを可能にしてくれたわけですが、なぜその意思決定をすることができたのか。
10年近く前のコードに対する私の恐怖をどう変えたのか。
実コードと実データ、そして率直な失敗談を交えて語ります。
レガシーコードから目を背けてきたエンジニア、技術的負債の返済を諦めかけているチーム、そしてAIが開発組織の意思決定をどう変えるのか知りたいリーダーにとって、明日からの判断基準を変える内容を提供します。
Ryo Adachi UIライブラリは入れ替わりが早い一方で導入後はコンポーネント構造やテーマ設計・CSSトークン・A11y実装などがライブラリ側で固定化されやすく、結果としてロックインが生じやすいです。
本セッションではその前提を踏まえつつ、いま shadcn-ui をどのように評価し、ロックイン等のリスクと向き合うべきなのかを考えます。
山本 一将 エンジニアは新規技術の採用や組織課題など、さまざまな問題に直面します。
私は LINE API を利用した新規プロダクト開発や技術組織の拡大に伴う課題に直面した際、LINE Developers Community や EM Oasis といったコミュニティに参加することで活路を見出してきました。
そして、活動は課題解決に留まらず、現在は LINE API Expert としての初学者支援や EM Oasis の運営という形で、コミュニティへ貢献する活動へと繋がっています。
これらの経験は、「コミュニティがエンジニアの成長と課題解決に極めて有効である」という確信を与えてくれました。
本セッションでは、この実体験に基づき、以下の実践的なプロセスと技術を解説します。
私がなぜ技術的な課題に直面した際にコミュニティに参加をするのか、私はなぜ課題が解決した今でもコミュニティ活動を続けているのか、LINE API Expert や EM Oasis 運営の活動を通して何を感じているのか、実体験を元にコミュニティ活動の素晴らしさを語りたいと考えています!
技術コミュニティへの参加を検討している方、また既に参加しているがより効果的に活用したい方にとって、具体的な行動指針となる内容を提供します。
Ryo Adachi メンテナンスされ続けるStorybook運用を目標に、設計と運用の要点を共有します。
Coding Agentに「作成・更新・整理」といった負荷の高い作業を委ね、速度と品質の両立をねらう取り組みを紹介します。
本テーマは実装の細部ではなく、意思決定の拠り所となる原則にフォーカスします。
doriven YoY300%成長のクリエイター向けオールインワンプラットフォームの成長に伴い、複数プロダクトでの通知機能共通化が急務となりました。
メール・LINE・アプリ内通知を統一基盤として提供しつつ、将来の事業拡大を見据えた拡張性と、ミッションクリティカルな通知の確実な配信を両立する必要がありました。
本セッションでは最終的なインフラ・アーキテクチャ構成を共有したのち、その設計の過程でどのような制約や判断軸の中で候補として上がった技術について触れてなぜそれを採用しなかったのかという生々しい設計のリアル話をお伝えるすることが出来ます。
作成した成果物やその結果を伝えるセッションではなく、そこに至る技術的な判断や思考をみなさんに共有して今後の設計に役立つようなものにしたいと考えております!
マルチプロダクト戦略での基盤設計思想
技術スタック選定
冪等性設計の技術判断
nakao-shogo PoC段階では新技術を使って、楽しいですが本番運用するにはPoCとは違って考えることがたくさんあります。
AI関連の話が乱雑になっていてたくさんの会社でPoCを開始していると思うので、決め手となるのは本番運用に載せたときのメリットデメリットの話だとおもっていますので、今一度基本に戻ってはいかがでしょうか?っということで話そうと思います。
草場友光 『薬屋のひとりごと』(以下「薬屋」)に出てくる主人公・猫猫(まおまお)の問題解決の進め方をヒントに、システム障害対応を分かりやすく整理したものです。
薬屋は、薬の知識を持つ少女が後宮で起きる毒や病の理由を探る物語です。やっていることは「状態を観察→原因候補を考える→確かめる→再発を防ぐ」で、これはまさにシステム障害対応と同じ流れです。
猫猫のやり方に当てはめてシステム障害を解決に導く流れを楽しく学んでいきましょう。
なお、原著作物のストーリーや独自文章などに配慮して特定のシーンは扱いません。アニメなどを視聴した前提での話とさせていただきます。
髙橋直規 ■テーマ
バグバッシュを「品質保証」「学習」「共通理解」を同時に生む場として用意し、開発者がリリース対象機能を必ず自分の手で操作してから出す運用を紹介します。
不具合発見に留めず、多職種が操作を共有しながら触ることで、仕様意図・前提のズレをその場で解消し、プロダクト理解とチームの合意形成を加速させます。
■想定する参加者層
初心者向け
■トーク概要
バグバッシュ(Bug Bash)とは、プロダクトの品質向上のため、職種を問わずチームメンバーが集合して、指定期間内に意図的にバグ(不具合)を見つけ出すイベントです
本LTは、バグバッシュを「品質保証」「学習」「共通理解」を同時に生むイベントとして定義します。
開発者・プロダクトオーナーなど異なる役割が一堂に会し、実際にプロダクトを発話しながら操作することで、仕様意図や前提のズレをその場で解消し、個人に依存しない検出力と“使われ方”の相互学習を生み出します。
さらに、開発メンバーがリリース対象機能を必ず自分の手で操作してから出す運用をリリースゲートとして組み込みます。
これにより当事者意識とUX理解が開発プロセスに定着し、「納得して出す」文化が醸成されます。
鰤が群れで回遊して身を太らせるように、プロダクトも群れ(多職種)と手触り(ハンズオン)で育つ。
その設計と運営の要点と実践内容を共有します。
「プロダクトを育てる」ことに真正面から向き合うチームに向けた実践です。