LoginSignup
0
0

More than 1 year has passed since last update.

[勉強メモ]マイクロサービスを理解 Vol3

Posted at

Vol1:マイクロサービスの概要->https://qiita.com/get-latest-information/items/e959d12a54a378ffceb2
Vol2: DDD(ドメイン駆動設計)を用いたマイクロソフトサービス設計アプローチ -> https://qiita.com/get-latest-information/items/5da2088e952c2562347f
Vol3: 戦術的DDDを使用したマイクロサービスの設計

今回のフォーカス

MicrosoftのAzure Docsで色々な機能やアーキテクチャなどがまとまっているので、
今回は、マイクロサービス関連で下記ページをサマリーします。なるべく短い言葉を使って。
◆戦術的DDDを使用したマイクロサービスの設計
https://docs.microsoft.com/ja-jp/azure/architecture/microservices/model/tactical-ddd

戦術的パターンの概要

  • 戦術的DDDパターンは、ドメインモデルをより正確に定義する。1つのコンテキスト内で適用される。
  • 戦術的DDDパターンの概要図 image.png
    • エンティティ:ユニーク(一意)なIDをもつオブジェクト。変わる可能性はある。ex)顧客、銀行口座
    • 値(Value)オブジェクト:変更を管理する必要がないオブジェクト。ex)色、日付、時刻
    • 集約:一貫性の境界を定義。
      • 簡単にいうと、マイクロサービスA、B、Cがあって、一貫性が必要である場合、データ整合性をアプリケーション側で保つようにすること。(記事の中では、トランザクションのインバリアント(不変)をモデル化すること。)
      • モノリシックの場合は、データレイヤーで一貫性・整合性を保っている。
    • ドメインサービスとアプリケーションサービス:サービスは、データを保持せず、ロジック実装するオブジェクト。
      • ドメインサービス:ドメインロジックをカプセル化するもの
      • アプリケーションサービス:技術的な機能(ユーザ認証、SMSメッセージ送信etc)
    • ドメインイベント:ドメイン内で発生したイベントを外部へ通知すること。

ドローン配送:パターンの適用

  • ドローン配送シナリオでは、以下のエンティティが考えられる。
    • 配送
    • 荷物(Package)
    • ドローン
    • Account
    • 確認
    • 通知(Notification)
    • タグ
      • 集約は、4つ→配送、荷物、ドローン、アカウント
      • 確認と通知は、配送の子エンティティ
      • タグは、荷物の子エンティティ
  • 値オブジェクト:Location,ETA(Estimated Time of Arrival),荷物の重さ,荷物のサイズ
  • ドメインイベント:
    • ドローンが飛行中に、場所や状態(飛行中、着陸)を示すDroneStatusイベントを送る。ドローンエンティティが送る。
    • 配送エンティティが配送段階が変わる度に、DeliveryTrackingイベントを送る。

感想

似た用語が多くて、パッとわかりづらい。ドメインモデル、ドメインロジックなど。
やっぱり一度、簡単でいいので体験してみるべきと感じた。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0