More Related Content
Similar to マイクロサービス 4つの分割アプローチ
Similar to マイクロサービス 4つの分割アプローチ (6)
マイクロサービス 4つの分割アプローチ
- 19. ネットワークは信頼できる → 必ず落ちる
ネットワークは遅延しない → メモリに比べとんでもなく遅い
ネットワークの帯域は無限である → 帯域は有限
ネットワークは安全である → アクセスできている=穴が開いている
ネットワーク構成は変化しない → 誰かが前触れもなく変更する
一人の管理者が集中管理してくれる → 複数人がばらばらに管理している
転送コストはゼロである → データ転送はお金がかかる
ネットワーク全体は等質である → 性質の異なる構成要素のごった煮
出典:Fallacies of Distributed Computing Explained
http://www.rgoarchitects.com/Files/fallacies.pdf
勘違い 真実
2019/5/18 19
- 37. エヴァンス流の定義
✓Bounded Context : 境界づけられたコンテキスト
➢ひとつのモデルを一貫して適用できる範囲
➢境界の実体
⚫ チーム(密接なコミュニケーションの範囲)
⚫ ソースコードやDBスキーマの所有権(変更可能範囲)
✓サブドメイン
➢特定のモデルの中の、独立性の高い、凝集した塊
2019/5/18 37
どちらもマイクロサービスの単位になりえる
実際には、サブドメインは設計の見直しで定義しなおすことが多い
サブドメインでマイクロサービスに分けるのは設計改善の障害になりやすい
- 49. inbound
メッセージ
Event 通知、Document送付
Query 問い合わせ、Command 指示
Validation
妥当性検証
メッセージ内容の妥当性を検証する
データ形式、必須属性、値範囲、…
Enrich
情報付加
メッセージに含まれたIDなどから、関連する情報を収集
するルール(ex. 顧客ID->顧客購買履歴)
Translate
情報導出
付加された情報を元に、新たな情報を導出するルール
(ex. 購買履歴 → 顧客ランク )
Routing
分岐判定
導出された情報を元に、適切なオペレーションに分岐さ
せるルール ( ex. 顧客ランクごとの対応 )
Operation
通知/記録
通知ルール:誰に何を通知すべきか?
記録ルール:どこに何を記録すべき?
2019/5/18 49
- 55. Event History - State Materialize – Domain Specific Query
2019/5/18 55
inbound
イベント
イベント
ハンドラ
目的別
状態
状態の
実体化
問合せ
subscribe
目的別
状態
状態の
実体化
問合せ
subscribe
目的別
状態
状態の
実体化
問合せ
subscribe
publish
イベント
履歴
追記
①
②
③
状態は、履歴を再生して導出 問合せを目的別に分解することで、
APIとデータ構造をシンプルにできる