アーキテクチャパターン入門
MVC・レイヤード・イベント駆動など、システム設計の定番パターンを Rails と AWS で学ぶ
プロローグ — なぜアーキテクチャパターンを学ぶのか
新人エンジニアのユウキが先輩アヤカに出会い、アーキテクチャパターンの必要性を知る物語の始まり
MVCパターン — Railsの心臓部
Model・View・Controllerの役割を理解し、Railsでのクリーンな実装を学ぶ
レイヤードアーキテクチャ — 責任を分離する
プレゼンテーション層・ビジネス層・データ層に分けることで、変更に強いコードを作る
リポジトリパターン — データアクセスを抽象化する
ActiveRecordを直接使わず、リポジトリ経由でデータアクセスを統一。テストと変更に強いコードへ
イベント駆動アーキテクチャ — 非同期の力
AWS SQS/SNSとActiveJobを使って、疎結合な非同期処理システムを構築する
パイプ&フィルタパターン — データの流れを設計する
Rackミドルウェアの仕組みとAWS Step Functionsで学ぶ、データ変換パイプラインの設計
CQRSパターン — 読み書きを分離する
コマンドとクエリを分離し、読み取りレプリカとキャッシュを活用したスケーラブルな設計
サーガパターン — 分散トランザクションを管理する
マイクロサービス間の整合性を保つサーガパターン。補償トランザクションで失敗を安全にロールバックする
ストラングラーフィグパターン — レガシーを段階的に置き換える
モノリスを止めずにマイクロサービスへ移行する。CloudFrontを使った段階的なトラフィック切り替え
サーキットブレーカーパターン — 障害の連鎖を断つ
外部API呼び出しの失敗を検知して回路を遮断。システム全体の崩壊を防ぐフォールトトレランス設計
バックプレッシャーパターン — 過負荷を制御する
レート制限・キューイング・AWS API Gatewayで、処理能力を超えたリクエストを安全に制御する
エピローグ — パターンを組み合わせる力
12週間の旅の総まとめ。複数パターンを組み合わせた実践的なアーキテクチャ設計と、ユウキの成長