ドメイン駆動かデータ駆動か
DBの話は何一つしてないのに。DB構造はアプリケーション設計上マジで超のつく邪魔者なので脳内から完全に消し飛ばしてほしいのだが……
大規模になればなるほどデータの移動とかフィルタリングとかがボトルネックになるので、データ中心の設計になっていくよね。あとはクラウドネイティブ。うまくスケールするための設計とかも、データ中心設計が必要。RDBを活かすのもNoSQLを活かすのもデータ中心設計が必要。
自分もデータ駆動派
どのデータをどこに持つか、がアプリケーション設計のベースになると思う
どのように持つか(DB/Cache/S3...) が次点になるのはそう
そもそも「データを記録・参照する」は重要な業務要件
だから、ドメイン要求を満たすために確実に必要なこと
ドメインモデルは実務の数だけある
現実的には担当部署とかなんだろうけど
ひとつのデータを様々な実務の中で使う業務システムが多い
証券会社で「顧客」といっても、契約締結のコンテキストと証券取引のコンテキストでは毛色が違う
じゃあ「境界づけられたコンテキスト」で分けろ的な話になる
が、そんなものは自明ではない
スタート地点は同じデータを扱うことになる
→ 必然的に一つのデータをそれぞれのコンテキストで扱うことになる
一つの「ドメインモデル」に多数のコンテキストのロジックを埋め込むのは分割しづらくなる