学習ロードマップ
イベントソーシング・CQRS・Kafka 等のメッセージ基盤を使って、非同期システムを組み立てる力を養うロードマップ。
このロードマップが扱うもの
このロードマップは、同期呼び出し中心のアーキテクチャに限界を感じ、非同期 / イベント駆動型の設計に踏み出したいバックエンド / プラットフォームエンジニアを対象にしています。学び終えたときには、メッセージング、イベントソーシング、CQRS の考え方を理解し、用途に応じて組み合わせた非同期システムを設計・運用できる状態を目指します。
このロードマップの全体像
このロードマップは、同期呼び出し中心のアーキテクチャに限界を感じ、非同期 / イベント駆動型の設計に踏み出したいバックエンド / プラットフォームエンジニアを対象にしています。学び終えたときには、メッセージング、イベントソーシング、CQRS の考え方を理解し、用途に応じて組み合わせた非同期システムを設計・運用できる状態を目指します。
1. 同期と非同期の設計差: リクエスト/レスポンスと、イベントベースの世界観の違い、トレードオフを整理します。 2. メッセージングの基本: Pub/Sub、キュー、配信保証(at-most-once / at-least-once / exactly-once 相当)、順序性の前提を押さえます。 3. Kafka などのログベース基盤: トピック、パーティション、コンシューマーグループ、保持期間による再処理可能性を学びます。 4. イベントソーシング: 状態ではなくイベント列を正として保存するモデル、スナップショット、再構築の戦略を理解します。 5. CQRS とリードモデル: コマンドとクエリの分離、目的別リードモデル、整合性の遅延許容の扱いを設計します。 6. 運用とガバナンス: スキーマ進化、冪等性、デッドレターキュー、観測性、スキーマレジストリ、組織的な責務分担を整えます。
イベント駆動は柔軟さと引き換えに「全体で何が起きているか」が見えにくくなり、デバッグや整合性管理が難しくなります。イベントのスキーマや意味が時間とともに変わるため、互換性を意識した設計と、履歴を再処理できる運用が欠かせません。CQRS やイベントソーシングは強力ですが、全領域に適用するとコストが釣り合わないため、適切な境界づけが重要です。周辺では、分散システム基礎、DDD、トランザクションと整合性モデル、スキーマ進化、可観測性(ログ・メトリクス・トレース)、運用とインシデントマネジメントを並行して理解しておくと、どこまで非同期に踏み込むかの判断がしやすくなります。
ロードマップ