書籍メモ「Persistence Best Practices for Java Applications」Chapter 3
https://learning.oreilly.com/library/view/persistence-best-practices/9781837631278/
Part 1: Persistence in Cloud Computing – Storing and Managing Data in Modern Software Architecture
Chapter 3 Exploring Architectural Strategies and Cloud Usage
・The cloud’s influence on software architecture design
・Design patterns – the essential building blocks for software architects
・Monolithic architecture
・Microservices architecture
Gang of Four(GoF)デザイン・パターンとサービス指向アーキテクチャ (SOA)パターンは、最近のマイクロサービス・アーキテクチャとイベント駆動アーキテクチャ・パターンの重要な基礎となった。
特定のトレンドがあなたのシナリオに適しているかどうかを判断する一般的な方法は、技術採用のライフサイクルを参照することです。
モノリシック・アーキテクチャ
モノリシック・アプリケーションとは、すべてのコンポーネントが単一のパッケージに含まれ、コンパイル、管理、およびデプロイされた、単一のまとまったユニットとして構築される大規模なスタンドアロン・ソフトウェア・システムのことである。
マイクロ・サービス・アーキテクチャ
互いに切り離されたアプリケーションを作成し、ビジネスドメインに従ってモデル化するというアイデアをもたらす。
リスクをもたらす可能性のある重要な要素:統合の待ち時間/職務の分離/ポリグロット環境の罠/サービスのサイズと責任/忘れ去られたサービス/粒度の細かいリポジトリ
SAGAパターン
ロールバックを行うことができない代わりに補償という考え方を提供しており、ロールバックを行うことができない代わりにリクエストの内容を逆向きにした取り消し操作により、擬似的なロールバックを行います。
マーティン・ファウラーの考え
「マイクロサービス・ベースのソリューションの性能は、個々のコンポーネントが 効率的に通信できる能力と同程度 である。」
共有データベースのアンチパターン
デュアルライトのアンチパターン
イベント駆動アーキテクチャ(EDA) が提供する統合 の利点を知ることは、パターン、ベストプラクティス、推奨事項を壊すことなくサービスを統合するために極めて重要であり、非同期で拡張性の高い統合のメリットを確実に享受するために不可欠です。