学習ロードマップ
イベントソーシング・CQRS・Kafka 等のメッセージ基盤を使って、非同期システムを組み立てる力を養うロードマップ。
このロードマップが扱うもの
このロードマップは、同期呼び出し中心のアーキテクチャに限界を感じ、非同期 / イベント駆動型の設計に踏み出したいバックエンド / プラットフォームエンジニアを対象にしています。学び終えたときには、メッセージング、イベントソーシング、CQRS の考え方を理解し、用途に応じて組み合わせた非同期システムを設計・運用できる状態を目指します。
このロードマップの全体像
このロードマップは、同期呼び出し中心のアーキテクチャに限界を感じ、非同期 / イベント駆動型の設計に踏み出したいバックエンド / プラットフォームエンジニアを対象にしています。学び終えたときには、メッセージング、イベントソーシング、CQRS の考え方を理解し、用途に応じて組み合わせた非同期システムを設計・運用できる状態を目指します。
1. 同期と非同期の設計差: リクエスト/レスポンスと、イベントベースの世界観の違い、トレードオフを整理します。 2. メッセージングの基本: Pub/Sub、キュー、配信保証(at-most-once / at-least-once / exactly-once 相当)、順序性の前提を押さえます。 3. Kafka などのログベース基盤: トピック、パーティション、コンシューマーグループ、保持期間による再処理可能性を学びます。 4. イベントソーシング: 状態ではなくイベント列を正として保存するモデル、スナップショット、再構築の戦略を理解します。 5. CQRS とリードモデル: コマンドとクエリの分離、目的別リードモデル、整合性の遅延許容の扱いを設計します。 6. 運用とガバナンス: スキーマ進化、冪等性、デッドレターキュー、観測性、スキーマレジストリ、組織的な責務分担を整えます。
イベント駆動は柔軟さと引き換えに「全体で何が起きているか」が見えにくくなり、デバッグや整合性管理が難しくなります。イベントのスキーマや意味が時間とともに変わるため、互換性を意識した設計と、履歴を再処理できる運用が欠かせません。CQRS やイベントソーシングは強力ですが、全領域に適用するとコストが釣り合わないため、適切な境界づけが重要です。周辺では、分散システム基礎、DDD、トランザクションと整合性モデル、スキーマ進化、可観測性(ログ・メトリクス・トレース)、運用とインシデントマネジメントを並行して理解しておくと、どこまで非同期に踏み込むかの判断がしやすくなります。
ロードマップ
第 1 章
アーキテクチャ特性とトレードオフの語彙を体系的に整える起点。イベント駆動を含む各スタイルの位置づけをここで掴み、以降の設計判断の基準軸を据える。
非同期システムの境界を切るためのドメインモデリングを手を動かして学ぶ。集約とイベントの単位感を養い、メッセージ設計の土台となる段階。
データ基盤を構成する要素技術と構築・利活用の全体像を俯瞰する。イベントが流れ込む先のストレージと処理層の地図を作り、非同期設計を支える役割。
予測モデルの実装を通じて、イベントデータを後段で活用する分析側の感覚を補う。流れたデータが何に使われるかを知り、設計の出口を意識づける段階。
オブジェクト指向の観点で既存システムを再構成する視点を補強する。手続き的な実装を構造化する設計感覚を養い、イベント駆動への移行思考を支える役割。
コンテナを前提とした分散システムの定石パターンを一望する。メッセージング基盤を載せる実行環境の構成法を掴み、ロードマップ全体を実装へ着地させる仕上げ。
読む順に並べています。まずは1冊目から始めましょう。
アーキテクチャ特性とトレードオフの語彙を体系的に整える起点。イベント駆動を含む各スタイルの位置づけをここで掴み、以降の設計判断の基準軸を据える。