DDDをデータ基盤に取り入れてビジネス価値を高めよう
Domain-Driven Design (DDD) はビジネス要件とひとつになった複雑なシステムを構築するための手法としてソフトウェア開発の世界で大きな支持を得ています。
コアドメインとドメインロジックに注目することで、メンテナンス性が高くスケーラブルで変化するビジネスニーズに適応しやすいソフトウェアを作れます。
しばしばアプリケーション開発と関連付けられるDDDですが、その原則はデータエンジニアリングやデータパイプラインの分野にも適用できます。
DDDの概念をどのように活用するとより効果的で効率的なデータパイプラインを設計・構築できるかを見ていきます。
Domain-Driven Designの理解
データエンジニアリングへのDDDを適用する前に主要な概念を簡単に振り返りましょう。
企業を牽引するコア知識やプロセス、ルールを包括するビジネスドメインの理解とモデル化がDDDの中心にあります。
ドメインはそれぞれ独自の言語や概念、責任を持つ境界コンテキスト (Bounded Context) に分割されています。
本質的なエンティティや関係性、振る舞いを捉えるドメインモデルが各コンテキスト内で作成されます。
DDDではユビキタス言語 (Ubiquitous Language) も重要です。
チームとコードベース全体で一貫して使用される共通言語であるユビキタス言語によって、言葉にブレやあいまいさがない明確なコミュニケーションが促されます。
ビジネスドメインとソフトウェアを合わせて共通言語を使うことで、技術的実装とビジネス理解のギャップが埋まります。
データエンジニアリングへのDDDの適用
さて、データエンジニアリングやデータパイプラインにDDDの原則をどのように適用できるか探っていきましょう。
境界コンテキストの特定
データエンジニアリングの文脈で境界コンテキストというと、データエコシステム内の異なるドメインやサブドメインを表します。
例えば顧客データ、製品データ、売上データ、分析データなどの境界コンテキストがあるでしょう。
それぞれの境界コンテキストは特定のデータエンティティや関係性、ビジネスルールを内包しています。
境界コンテキストを見極めて分けることで関心の分離を明確にし、データパイプラインの異なる部分間の結合を減らせるのです。
ドメインモデルの作成
この記事が参加している募集
よろしければサポートお願いします! いただいたサポートはクリエイターとしての活動費に使わせていただきます!