ソフトウェアでなにができるかはデータが肝になることが多いのでなにかとデータに着目しがちだが、ドメインモデルにせよMicroservicesにせよ、境界はデータではなくそのコンポーネントがどんなサービスを提供するのかで切るのが正しい。そしてサービスで切る方が考えることが多い。
データで境界を切るというのはRDBの正規化と同じ方向性で、物理層・パフォーマンスや運用の都合を忘れて良いならそのほうがコードはシンプルにできるはずだけど、実際はそうもいかないので、状態や手続きと正面から向き合ったほうがうまくいくということになる。
サービスで切ると、データには重複が生じる。その重複をどう処理するのかが、Microservicesかを問わずアプリケーション分割の課題だと思う。DBは共有だから良しという見方が過去は一般的だったと思うが、そこから一歩踏み出すべき。