5/9

モノリスの分割をしようとしています。まず、(サブ)ドメインを洗い出し、その上にコンテキストを考えようとしています。システムの提供するサービスの機能を見ながら、境界を考えています。どのぐらいの塊で、一つのコンテキストにするべきなのか迷うことも多いです。コンテキスト境界の設計を考える際に、意識するポイントや、思考のステップなどはありますでしょうか?

大きなシステムの分解については、私も模索中なのであまりはっきりしたことはいえないのですが、あくまで一般論として話します。 ・コンテキストの概念的な適切さ ・技術的な適切さ という二つの観点から並行して検討することになると思います。 概念的な話は、そもそもの意味合いが「同じ言葉、モデルを使い回す境界線」という意味なので、その観点から正しい切り方を考えます。 以前に書いた記事があるのでよろしければご参考にされてください。 https://little-hands.hatenablog.com/entry/2017/11/28/bouded-context-concept また、技術的な観点としては、例えば細かく割りすぎた時に、joinが大量に発生しそうになった場合は実装時に問題になりそうなことが想像できると思います。そういった点で検討します。 この観点は補完的なものだと思っていて、技術的観点でjoinが大量に発生すぎる、となって考え直して見たら論理的にも切り方が適切ではなかった、ということに気づいたりします。 こういう風に地道に複数観点から検証してその時点の解を出していくしかないのかな、と思っています。 なお、分割する際にはスモールスタートで始めることはオススメしたいです。やはりマイクロサービスの文脈でも切りすぎてあとで大変苦労する話をちらほら聞きます。最初は一つで初めて、同じ単語を複数の意味で使われてややこしくなってきたな、となったらそれはコンテキスト分割のタイミングかもしれません。そのように徐々に進める方が過剰な分割を避けられるのでオススメです。

スポンサーリンク

スポンサーリンク

スポンサーリンク