メッセージングを利用して時間的結合を分離しよう by 梶川 琢馬

PHPerKaigi 2026
採択
2026/03/22 11:35〜
Track C
レギュラートーク(20分)

メッセージングを利用して時間的結合を分離しよう

kajitack 梶川 琢馬 kajitack
4

アプリケーションを運用していると、外部サービスの遅延や内部の重い処理が原因で応答速度が不安定になることがあります。
私自身、サービス間の連携やドメインイベントの実装に取り組む中で、メインフローが時間のかかる処理と密結合していることが、遅延や障害につながるケースを経験しました。

こうした状況では、時間のかかる処理をメインフローから切り離し、QueueやPubSubなどメッセージングを使って非同期で実行するアプローチが有効な場合があります。
これにより応答速度が安定し、メイン処理と周辺処理を分離することで、変更に強い構造を作りやすくなります。

一方で、非同期化には同期処理では現れにくい落とし穴があります。
整合性のズレ、処理順序の乱れ、重複実行など...
適切な対処をせずに導入すると、期待した改善よりも複雑さが増すケースもありました。

本セッションでは、メッセージングによる非同期化を進める際に押さえておきたいポイントを、次の観点から整理して解説します。

  • なぜメッセージングによる非同期処理を行うのか
  • 非同期処理特有の落とし穴と対策
  • 非同期処理をどのように切り分けるのか

イベント駆動アーキテクチャなどメッセージング導入について議論のきっかけになると嬉しいです!