Udi Dahan氏がプレゼンの中でよりイベント駆動で非同期なパターンを使ったシステムのモデリングの仕方やこのような手法を採用したときに直面する課題について説明しながら、強靭さ、弾力性、スケーラビリティを確保するにはより弱く結合したシステムを構築する必要がある、と主張している。
氏はNServiceBusの開発者であり分散システムの設計を専門とするアーキテクトだ。氏は自身の経験から、システムの適切な設計についての意思決定は小さく基礎的でシンプルなシステムを構想してなされるが、システムが進化するに従って、コードベースは巨大化して結合度が強くなり、最終的には見るも恐ろしい密結合の固まり、複雑な巨大泥だんごになってしまう、という。
Udi氏は、どのようにして泥だんごを回避するか、システムの最も重要な部分の疎結合を保つにはどうしたらいいかという課題に直面してきた。そのためには、プロジェクトの初期段階で疎結合を指向するパラーンを導入する必要がある。プロジェクトの後半になって、異なるアーキテクチャを導入して、リファクタリングしながら、疎結合なイベントタイプシステムに作り直すのはとても大変だ。
氏はプレゼンで発行 – 購読パターンに注目している。この種の非同期通信はビジネスドメインの中核的なロジックになじみやすいことがわかった、というのだ。ビジネスドメインの中核的なロジックは最も複雑なロジックを含んでおり、一枚岩のロジックから小さな複数のドメインが非同期で動くように変わることで、大きな利益が得られる。しかし、氏によればこの決定は簡単に下せるものではない。多くの開発者がこのようなパターンに群がって、使い方を間違ってしまっているという。
氏によれば疎結合は諸刃の剣だ。つながりを少なくすればするほど、結合は弱まり、独立化が失敗する可能性やバグが増える。しかし、疎結合であれば、あるロジックを変更してもその変更が他の部分の動作をおかしくしてしまう可能性が低くなる。そうなることでプロジェクトの進み具合も良くなる。
アーキテクチャについて語った後、Udi氏はNServiceBusのデモを見せてくれた。
NServiceBusはオープンソースライセンスの.NET向けサービスバスで、商用ライセンスもある。また、より大きなサービスプラットフォームでもある。