More Related Content Similar to CQRS+ES on GCP
Similar to CQRS+ES on GCP (20) More from Masaki Toyoshima
More from Masaki Toyoshima (8) CQRS+ES on GCP4. - -copyright Fringe81 Co.,Ltd.
事業化判
断
2. Fringe81の新規事業の開発フェーズ
事業企画
以下のフェーズを意識して、
実現性検証
プロトタイピン
グ
ローンチ
にむけた
開発
ローンチ
直後の
サポート
フェーズ1 フェーズ2 フェーズ3 フェーズ4 フェーズ5
9. copyright Fringe81 Co.,Ltd.
It is not possible to create an optimal solution
for searching,reporting,and processing transactions
utilizing a single model.
-CQRS documents by Greg Young-
10. copyright Fringe81 Co.,Ltd.
It is not possible to create an optimal solution
for searching,reporting,and processing transactions
utilizing a single model.
-CQRS documents by Greg Young-
2軸を包括するモデルの定義はかなり難しい
17. copyright Fringe81 Co.,Ltd.
Command (GAE flexible)
Adapters
DB
UseCases
Entities(Domains) Repository
RepositoryImpl
Controller
UseCase
Presenter
DDD x CleanArchitecture
GAE flexible x Scala
※ScalaはFringe81のメイン言語で最も使い慣れている
22. copyright Fringe81 Co.,Ltd.
Command
App Engine Flexible
Query
App Engine Standard
Cloud
Pub/Sub
microservice1
microservice2
Cloud Datastore
より複雑なクエリへの対応にも
(C側に影響を及ぼすことなく:疎結合)
Cloud SQL
Event
Event
Event
33. copyright Fringe81 Co.,Ltd.
Command
App Engine Flexible
Query
App Engine Standard
Cloud
Pub/Sub
microservice1
microservice2
Cloud Datastore
「後から追加できる」という特徴との
コンフリクトが少なからず存在する
Cloud SQL
Event
Event
Event
48. copyright Fringe81 Co.,Ltd.
メリット 要約
Performance ESにおいては永続化はイベントの append-only。
更新処理のパフォーマンス改善が望める。
Simplification factとしてのイベントを保存するだけ。
O-R間のインピーダンスミスマッチが起きない。
Audit trail システムで何が起きてその状態なのかの追跡が可能となり、監査ログとして使える
Integration with
other subsystems
疎結合を促す。
また、他のサブシステムへ publishした全てのイベントは eventStoreに保存されている。
Deriving additional
business value
from the event
history
将来起こるビジネス要件を予想することは困難だが全てのイベント履歴を持っていることで対処
可能性が高まる。
例:ある時点での状態がどうであったかにこたえられるなど
Production
troubleshooting
本番環境のデータをテスト環境にコピーするなどして状態の再現を簡単にできるためトラブル
シューティングに役立つ
Fixing Errors ESの場合factとしてイベントが保存されているだけなので、コーディングエラーを修正するだけ
でDB値を手動メンテせずにすむ場合がある
Testing テスト容易性が高まる
Flexibility イベント群があればいかなる構造のデータにも変換可能
49. copyright Fringe81 Co.,Ltd.
メリット 要約
Performance ESにおいては永続化はイベントの append-only。
更新処理のパフォーマンス改善が望める。
Simplification factとしてのイベントを保存するだけ。
O-R間のインピーダンスミスマッチが起きない。
Audit trail システムで何が起きてその状態なのかの追跡が可能となり、監査ログとして使える
Integration with
other subsystems
疎結合を促す。
また、他のサブシステムへ publishした全てのイベントは eventStoreに保存されている。
Deriving additional
business value
from the event
history
将来起こるビジネス要件を予想することは困難だが全てのイベント履歴を持っていることで対処
可能性が高まる。
例:ある時点での状態がどうであったかにこたえられるなど
Production
troubleshooting
本番環境のデータをテスト環境にコピーするなどして状態の再現を簡単にできるためトラブル
シューティングに役立つ
Fixing Errors ESの場合factとしてイベントが保存されているだけなので、コーディングエラーを修正するだけ
でDB値を手動メンテせずにすむ場合がある
Testing テスト容易性が高まる
Flexibility イベント群があればいかなる構造のデータにも変換可能
イベント群があれば
いかなる構造のデータにも変換可能
(さきほど紹介したもの)
50. copyright Fringe81 Co.,Ltd.
メリット 要約
Performance ESにおいては永続化はイベントの append-only。
更新処理のパフォーマンス改善が望める。
Simplification factとしてのイベントを保存するだけ。
O-R間のインピーダンスミスマッチが起きない。
Audit trail システムで何が起きてその状態なのかの追跡が可能となり、監査ログとして使える
Integration with
other subsystems
疎結合を促す。
また、他のサブシステムへ publishした全てのイベントは eventStoreに保存されている。
Deriving additional
business value
from the event
history
将来起こるビジネス要件を予想することは困難だが全てのイベント履歴を持っていることで対処
可能性が高まる。
例:ある時点での状態がどうであったかにこたえられるなど
Production
troubleshooting
本番環境のデータをテスト環境にコピーするなどして状態の再現を簡単にできるためトラブル
シューティングに役立つ
Fixing Errors ESの場合factとしてイベントが保存されているだけなので、コーディングエラーを修正するだけ
でDB値を手動メンテせずにすむ場合がある
Testing テスト容易性が高まる
Flexibility イベント群があればいかなる構造のデータにも変換可能
ESにおいては永続化はイベントのappend-only
更新処理のパフォーマンス改善が望める
52. copyright Fringe81 Co.,Ltd.
メリット 要約
Performance ESにおいては永続化はイベントの append-only。
更新処理のパフォーマンス改善が望める。
Simplification factとしてのイベントを保存するだけ。
O-R間のインピーダンスミスマッチが起きない。
Audit trail システムで何が起きてその状態なのかの追跡が可能となり、監査ログとして使える
Integration with
other subsystems
疎結合を促す。
また、他のサブシステムへ publishした全てのイベントは eventStoreに保存されている。
Deriving additional
business value
from the event
history
将来起こるビジネス要件を予想することは困難だが全てのイベント履歴を持っていることで対処
可能性が高まる。
例:ある時点での状態がどうであったかにこたえられるなど
Production
troubleshooting
本番環境のデータをテスト環境にコピーするなどして状態の再現を簡単にできるためトラブル
シューティングに役立つ
Fixing Errors ESの場合factとしてイベントが保存されているだけなので、コーディングエラーを修正するだけ
でDB値を手動メンテせずにすむ場合がある
Testing テスト容易性が高まる
Flexibility イベント群があればいかなる構造のデータにも変換可能
システムで何が起きてその状態なのかの
追跡が可能となり監査ログとして使える