このページの内容

Awesome Domain-Driven Design

Domain-Driven Designを扱う資料や関連プロジェクトをまとめたAwesomeリストです。

目次

書籍

無料電子書籍

トレーニングコース

  • Advanced Distributed Systems Design - ウディ・ダーンによるオンライントレーニングコース。ウディのライブトレーニングスケジュールは、 here で確認できます。
  • DDD Workshops across Europe and Online - エリック・エヴァンス、アルベルト・ブランドオリニ、マティアス・ヴェラース、リベッカ・ウィルズ・ブロック、ニック・チューン、その他多くの著者による公開セミナー。
  • DDD Workshop by Xebia - 公開および内部のドメイン駆動設計(DDD)ワークショップ。基礎からプロレベルまで。
  • Distilling Domain-Driven Design - ヴァーン・フォーリンのオンライントレーニングコース。
  • Domain Language eLearning - 元のDDD書(ドメイン駆動設計)を著したエリック・エヴァンズによる動画レッスンを活用し、実際のソフトウェアの品質を高めるためのモデルの進化技術を自習できます。
  • Event Sourcery - DDD、CQRS、イベントソースの概要。
  • EventStorming Fundamentals Course () - イベントストーミングの基礎を学びます。イベントストーミングに関するすべての内容と例を含みます。 also in Spanish
  • Greg Young’s CQRS Class - これらの動画には、グレッグ・ユンのDDD、CQRS、イベントソース講義のすべてが含まれています。
  • Mixter - CQRSおよびイベントソースの「コアン」(問題解決の練習)。
  • Nomad PHP - イベントソースとCQRSの概要。
  • Pluralsight
    • Domain-Driven Design Fundamentals - エリック・エヴァンズのアドバイスを交え、顧客とのインタラクションや複雑なデモアプリケーションをもとに、ドメイン駆動設計(DDD)の基礎を学びます。
    • Domain-Driven Design in Practice - ドメイン駆動設計(DDD)の原則を実際の開発現場で適用するための詳細な説明と実践的な導入方法。
    • Modern Software Architecture: Domain Models, CQRS, and Event Sourcing - このコースは、ビジネスドメインのトップレベルアーキテクチャを発見するためのDDD分析パターンをカバーしています。アーキテクトおよび開発者は、ドメインモデル、CQRS、イベントソースなどの実装パターンの詳細を学びます。
  • Rails + Domain Driven Design Workshop - DDDの概要、CQRSおよびイベントソースの基礎(Ruby/Rails開発者向け)。
  • Reactive Architecture: CQRS and Event Sourcing - このコースでは、CQRS/ESを使用する理由、それがもたらすメリット、そしてそのコストについて説明します。CQRS/ESがアプリケーションのスケーラビリティ、一貫性、可用性に与える影響についても見ていきます。
  • Reactive Architecture: Domain Driven Design - DDDを用いて問題領域を管理可能な部分に分解し、それらが反応型マイクロサービスおよび反応型アーキテクチャの基礎となる方法を学びます。無料、オンライン、自習型。完了後に証明書を発行。
  • Spatie’s Event Sourcing Course - Laravelでイベントソースアプリケーションを構築する方法を学びます。Spatieのイベントソースパッケージを使用します。動画コンテンツは2時間、それに伴う電子書籍も提供されています。

動画コレクション

コミュニティリソース

ブログ

  • Aardling Blog - Mathias Verraesおよび他の人々によるDDDとソフトウェア設計に関する記事.
  • Nick Chamberlain - .NET開発者向けの有効な開発および設計アドバイス.
  • Ardalis.com - Steve Smith. Pluralsightの著者であり、DDD FundamentalsコースおよびMicrosoft eShopOnWeb sample appの著者です.
  • DDD Weekly - DDD/CQRS/ESに関連する週間キュレーションされたリンク.
  • Daniel Whittaker - CQRSとイベントソースについて学びたいですか?このブログにはステップバイステップの記事が多数あり、初学者にも最適です.
  • Cyrille Martraire - 金融業界に深く浸っており、プログラミングにも情熱をもつため、エリック・エヴァンズのドメインドリブンデザイン、TDD、BDDおよびアジャイル/XPの実践に自然と好意を持っています.
  • Jimmy Bogard - 私はDDD、分散システム、およびその他の略語中心の設計/アーキテクチャ/メソッドに特に注目しています.
  • CodeBetter - CodeBetter.Comは、ソフトウェア開発コミュニティにおける優れた実践、優れたツール、確立されたメソッドおよび技術の認識を高めるために存在しています.
  • Greg Young - Good Enough Softwareは定義上、Good Enoughである.
  • InfoQ Blog - InfoQにおけるドメインドリブンデザインのコンテンツ.
  • Dan North - 行動ドリブンデザインの発明者。イベントストーミングに関するブログと講演も行っています.
  • Mike Mogosanu - 維持可能なコードはビジネス上の利点です。ドメインマップ:ドメインモデリングツール「簡単で強力なドメインドリブンデザイン」の開発者です.
  • Christian Posta - Red Hatでの主要なミドルウェアアーキテクト。オープンソースの愛好家。Apacheでのコンテナ、統合、Kubernetes、Docker、OpenShift、Fabric8のコンテイブラーです.
  • Vladimir Khorikov - プラルスightの著者。ソフトウェア開発の原則とベストプラクティスについてのブログを執筆。
  • TechBeacon - TechBeaconに掲載されたドメインドリブンデザインに関する記事。
  • Derek Comartin - ドメインドリブンデザインカテゴリの記事。
  • Alberto Brandolini - イベントストーミングの創始者。問題を解決するための思考は、その問題が生まれた当初の思考とは異なると主張し、頻繁にアーキテクト、メンターやコーチ、マネージャー、開発者といった視点を切り替える。
  • Jérémie Chassaing - DDD/CQRSに関するさまざまな記事。F#でグレッグ・ユンのSimpleCQRSサンプルを実装。
  • Vaughn Vernon - ヴァーン・フォーリンは、ソフトウェア開発の独自の要件や、急速に進展する業界でスキルを高める際に直面する課題を理解している。
  • Vladik Khononov - DDDに関連するさまざまな記事。
  • Eventsourcing Publications - 実用的なイベントソースの導入。
  • Jef Claes - ドメインドリブンデザインに関する優れた記事と講演。
  • Udi Dahan - NServiceBusの創設者によるコンテンツ。
  • Chris Patterson - MassTransit分散アプリケーションフレームワークの創設者によるコンテンツ。
  • Aaron Stannard - PetabridgeのCTOおよび共同創業者の視点から、Akka.NETアクターモデルフレームワークの開発者たちの視点から。
  • Roger Johansson - 主にC#、DDD、Akka.NETについて。
  • Konrad Garus - Java、Clojure、JavaScriptでのrantingとプログラミング。cqrsにタグ付けされた記事。
  • Oasis Digital - Oasis Digitalが掲載したcqrsにタグ付けされたコンテンツ。
  • Adaptech - Adaptech Solutionsのブログ。当社の創業者であるアダム・ディミトルクは、グレッグ・ユンが「CQRS」という用語を定義する前から、その価値についてグレッグと議論した。アダムとビジネスパートナーのロバート・レプルは、イベントソースマイクロサービスの主要な実践者である。
  • Lev Gorodinski - 2013年に掲載されたDDDに関するいくつかの記事。その内容は今も関連性がある。
  • Dino Esposito - ソフトウェアアーキテクト、トレーナー、著者。Microsoft .NET - Architecting Applications for the Enterprise (2nd Edition)を著した。
  • Dan Bergh Johnsson “Dear Junior” - セキュリティとアジャイルの一般に、ドメインドリブンデザインを融合した内容。若いプログラマーへ宛てたフィクションの手紙形式で書かれた。
  • the native web - DDD & Co.シリーズ
  • Arkency - Rubyの専門家たちが執筆したDDD、CQRS、イベントソース関連の記事のさまざまなもの。
  • Svaťa Šimara - DDDシリーズ - 言語、ドメイン、モデリング、インフラ、PHPでの実装
  • Martin Havlišta - C# .NETでDDD、CQRS、TDDに関するブログ記事とコードサンプル
  • Khalil Stemmler - DDDシリーズの紹介およびDDDをTypeScriptで実装する方法についての話
  • Kenny Baas-Schwegler - DDD、BDD、ソシオテクニカル、イベントストーミングおよび継続的デリバリーに関するブログ。
  • João Rosa - ドメインドリブンデザイン、視覚的な協働、リーダーシップおよび組織設計についての個人ブログ。その他にも中間的なテーマを扱っています。 Visual Collaboration Toolsのキュレーターであり、 Software Crafts Podcastのホスト。
  • GlobalAppTesting engineering - GlobalAppTestingのエンジニアリングブログで、実用的なDDDとCQRSに関する資料が掲載されています。

サンプルプロジェクト

Go

  • BDD in GO - Cucumber + GOを用いたBDDテストアプローチのサンプルアプリ。ブログ記事は here にあります。
  • Citerus DDD Sample App GO Port - これは DDD Sample App を、Goにふさわしい形で移植しようとする試みです。アプリケーションのプレビューにはDockerで実行可能です。
  • DDD by Refactoring - DDD、クリーンアーキテクチャ、CQRSを実用的なGoプロジェクトのリファクタリングを通じて適用するためのサーバレスアプリケーションの完全な例。詳細は https://threedots.tech/ にあります。
  • DDD Food App - 4層(ドメイン、インフラ、アプリケーション、インターフェース)を実装し、2つのドメインパターンを考慮したDDDアプリケーションのサンプル。そのために書かれたブログ記事は here にあります。
  • DDD Sample in GO - ただのもう一つのDDDの4層を実装したサンプルアプリケーション。
  • Evolutive CRUD API - SOLID、ヘキサゴナルアーキテクチャを用いたフルCRUDのAPI実装。そのために書かれたブログ記事は https://blog.friendsofgo.tech/ にあります。
  • Go DDD Template - 価格の高いDDDとCQRSテンプレート。バリュー・オブジェクト、競合を避ける一貫性のあるコマンド、トランザクション出力ボックス付きのドメインイベント、そしてゼロからDDDを教えるチュートリアルシリーズを含む。
  • Simple Hexagonal Architecture PoC API - ヘキサゴナルアーキテクチャパターンを用いた患者APIのプロトタイプ。
  • Azure DDD boilerplate - Azure上でDDDを実装するためのボイラープレートプロジェクト。カスタムハンドラーとCosmos DBを用いたイベントソース。

.NET(C#/F#)

  • AppointMe - .NET 10、React、モジュラリモノリス、垂直スライス、マルチテナント、CQRS、DDD、イベント駆動アーキテクチャ、持続可能なメッセージング(出力ボックス)を備えたプロダクションレベルのSaaSテンプレート。
  • Better code with DDD building blocks - ソリューションは、コードの読みやすさと表現力を高めるためにDDDの戦略的パターンの活用を示しています。DDDパターンと普遍的な言語を組み合わせることで、専門家とチーム間の言語とコード内の言語のギャップを埋めます。
  • CQRS-DDD Example - GetEventStore、CommonDomain、NServiceBus、Entity Framework、SQL Server、SignalRを用いたDDD、CQRS、イベントソースの例。
  • Companion Code for Microsoft .NET Architecting Applications for the Enterprise - イベントベースのマイクロERP。
  • ContosoUniversityCore - ContosoUniversity が ASP.NET Core とフル .NET フレームワークを使用したアプリケーション
  • DDD-starter-dotnet - DDD アプリケーションのさまざまなアプローチのサンプル実装と比較。DDD .net プロジェクトを迅速に開始するためのベースラインとして有用。
  • DDDInventoryItemFSharp - ドメイン駆動設計のための自然な F# 実装
  • DDDSkeletonNet (C#) - ドメイン駆動設計と緩い結合層の概念を紹介する .NET のフレームワークプロジェクト
  • DotNet CQRS Intro - イベントソースを用いたCQRS実装の例(進化型アプローチ:CQRSなし、同じモデルの分離モデルとコマンド、分離モデルとコマンド、分離モデルと分離ストレージ、イベントソース)。
  • EISK - .NET CLI と VS テンプレートによるシンプルなケースで、.NET Core 上のスケーラブルアプリケーションをアーキテクチャのベストプラクティス(DDD、オンネンアーキテクチャなど)に基づいて構築するもの
  • EmailMaker - メールマーケティング ASP.NET Core MVC および ASP.NET MVC デモアプリで CoreDdd の使用を示す
  • Equinox Project - フル ASP.NET Core 3.1 アプリケーションでクリーンアーキテクチャ、DDD、CQRS およびイベントソースの概念を実装
  • eShopOnWeb - Microsoft が提供するフル ASP.NET Core 3.1 リファレンスアプリケーションで、モノリスックデプロイメントアーキテクチャを示す
  • eShopOnContainersDDD - eShop フルスタック例でカタログ、バスケット、チェックアウト、注文のバウンドコンテキストを示す
  • Example of Domain-Driven Design in F# - チェッカーボードのゲームに対するドメイン駆動設計の例。2つのファイルがある:設計のスクラッチファイルと最終版。
  • Event Sourcing .NET - .NET におけるイベントソースと CQRS に関するサンプルとリソース。また、自習用のイベントストアの構築方法を含む。
  • EventFlow.Example - DDD、CQRS、イベントソースの例で、以下の技術スタックを含む: EventFlow, EventStore, RabbitMQ, MongoDB, PostgreSQL, Docker
  • Fohjin - マーク・ニホフの CQRS 書籍に付随する例プロジェクト。
  • FsUno - F# でのイベントソース実装サンプル。
  • IDDD Samples in .NET - これらのサンプルは、ヴァーン・ヴェルンの『ドメイン駆動設計の実装』書籍から導かれた C#.NET のバウンドコンテキストです。
  • LexiQuest-Modular-DDD - クリーンアーキテクチャとDDDの原則に基づいたモジュラリティを持つアプリケーションで、迅速にマイクロサービスに分割できるように設計されている。
  • Microsoft Patterns and Practices: CQRS Journey Sample Code - CQRS フィードバックのサンプルコード。
  • Modular Monolith - フルモジュラリティのモノリスケ .NET アプリケーションでドメイン駆動設計アプローチを採用。
  • Modular.StarterTemplate - モジュラリティを備えたクリーンアーキテクチャ DDD スタイルのスタートテンプレートで、モジュール間の同期インタラクションが単一トランザクション内で行われる。ERP アプリケーションに最適。
  • NLayerAppV3 (.Net Core Preview 2) - N層アーキテクチャのサンプルプロジェクト。
  • OpenMind.DDD.Patterns - 注文管理ドメインを用いた、DDD戦術パターン(エンティティ、バリュー・オブジェクト、アグリゲート、ドメインイベント)および戦略設計(バウンド・コンテキスト、コンテキストマッピング)を網羅したC#のデモ。CQRS、イベント駆動アーキテクチャ、MongoDBを用いる。
  • Photostock CQRS-DDD Example
  • Reactive Trader Cloud - Adaptive ConsultingによるReactive Trader Cloud。
  • Sample .NET Core CQRS REST API - .NET Core REST APIにおけるCQRS実装(raw SQLとDDDを用いた)およびクリーンアーキテクチャ。
  • Scritchy - CQRSのパイプラインなし、。 video
  • Simple CQRS in F# - Greg YoungによるF#でのSimpleCQRS。
  • SimpleCQRS - Greg Youngによる「最もシンプルなこと」CQRSとイベントソースプロジェクト。
  • TaskoMask - .NET Coreをベースとしたタスク管理システム。DDD、CQRS、イベントソースの概念を用いる。
  • TodoMVC-DDD-CQRS-EventSourcing - eventsourcing、cqrs、ドメインドリブンデザインを用いたtastejs/todomvcベースのTodoアプリの実装。

Haskell

  • Eventuria gsd - HaskellによるTodoリストアプリケーション。DDD、CQRS、イベントソース、FRPを用いる。

Idris

  • OrderTaking - 『Domain Modeling Made Functional』書の依存型による実装。バウンド・コンテキストとワークフロー図の形式化例。NodeJSでデプロイ可能なデモ。

JavaScript / TypeScript

  • wolkenkit Sample Applications - DDDサンプルアプリケーションのコレクション。TodoMVC、地図キャッシュアプリ、協働ボードなど。
  • Booster framework examples Booster Frameworkで構築された例アプリケーション。
  • Over-engineered ToDo app - TypeScriptとNestJSで生成された、ドメインドリブンデザイン(DDD)、ヘキサゴナルアーキテクチャ、CQRS、イベントソース(ES)、イベント駆動アーキテクチャ(EDA)、行動ドリブン開発(BDD)を用いた完全な実行例。 Bitloops Language (BL)
  • txob - PostgresとMongoDBのネイティブプラグインを用いたトランザクショナルアウトボックスイベントプロセッサ — 最低1回の配信、近いリアルタイムのウェイクアップシグナル、スムーズなシャットダウン、および水平スケーリング。

JVM言語

  • Akka CQRS ES Demo - Scala-AkkaでCQRSおよびイベントソースパターンを実装するデモプロジェクト。
  • Casino Engine - Kotlin/KtorによるプロダクションiGaming/カジノエンジン。ヘキサゴナルアーキテクチャとDDD、CQRSを示す。アグリゲートはドメインイベントを発行し、リポジトリポートはドメイン層に存在し、コマンドとクエリハンドラーはKoinで発見されたレジストリを通じて接続され、ドメインイベントは書き込みトランザクションがコミットされた後、RabbitMQに公開される。Apache 2.0。
  • DDD By Examples - Library - 実際のビジネス要件に基づくライブラリのサンプルプロジェクト。DDD、BDD、イベントストーミング、例マッピング、CQRSなどにより実現されたモジュラリーモノリス。
  • DDD Leaven - Spring、JPA、テストを用いた、高度なドメインモデリングの開始に役立つDDD-CQRSサンプルv2.0プロジェクト。
  • DDD Workshop - Project Manager - 「自分でやる」DDDワークショップと、同時にサンプルDDDアプリケーションを提供。プロジェクトマネジメントドメインをベースにしている。
  • Event Sourcing Example - イベントソースとCQRSのJavaコードにおける簡易な(メモリ内)例(銀行業界の用途事例を想定)。
  • Event Sourcing and CQRS Examples - イベントソースとCQRSの実用的なJava実装例。よくある問題(イベントの順序、一意性など)に関する参考資料も提供。
  • Event Sourcing and CQRS Sample - コマンド・クエリ責任分離(CQRS)を用いたイベントソースアプリケーションのサンプル。
  • IDDD Samples - ヴァーン・フォーリンの『ドメインドリブンデザインの実装』書籍に掲載された、ボンデッドコンテキストのサンプル。
  • Java CQRS Intro - イベントソースを用いたCQRS実装の例(進化型アプローチ:CQRSなし、同じモデルの分離モデルとコマンド、分離モデルとコマンド、分離モデルと分離ストレージ、イベントソース)。
  • Kotlin DDD Sample - Kotlinで書かれたDDD/CQRSプロジェクトのサンプル。
  • EventStormingWorkshop - Designing Cloud Native Microservices On AWS - イベントストーミングワークショップを経て、JavaでDDDの戦略設計パターンを実装し、AWSクラウドネイティブサービスを用いてビジネスイベントベースのコーヒーショップシナリオを構築するための具体的なサンプル。
  • DDDSample - Spring Bootを使用したDDDプロジェクトのサンプル(元々は http://dddsample.sourceforge.net/ でホスト)。
  • Eclipse CargoTracker - このプロジェクトは、Jakarta EEプラットフォームを用いて、ドメインドリブンデザイン(DDD)といった広く採用されているアーキテクチャベストプラクティスを用いてアプリケーションを開発する方法を示しています。The code は、実際の開発現場で開発者が扱うような非自明なアプリケーションを模倣しています。このプロジェクトは、Jakarta EEを用いて実際の企業課題(生産性、柔軟性、テスト可能性、柔軟性、保守性、スケーラビリティ、セキュリティなど)を効果的に解決する方法を、実際の体験を通じて示しています。このプロジェクトは、DDDの先駆者であるエリック・エヴァンズの会社「ドメイン・ラングュエージ」とスウェーデンのソフトウェアコンサルティング会社「Citerus」が開発した著名なオリジナル Java DDD sample application を直接基にしています。
  • https://github.com/felipexw/clean-arch-ddd-intro - マイクロナウで構築されたシンプルなDDD+クリーンアーキテクチャ。

PHP

  • DDD CQRS Todo Sample - PHP 7とSymfony 5を用いたDDD CQRS ADRの六角アーキテクチャ実装。
  • DDD Modulith - Symfony 7を用いたDDDのオニオンアーキテクチャ実装(モジュリス構造)。
  • DDD Wish List - Symfony 3とVue.jsを用いたPHPで構築されたアプリケーションのサンプル。
  • DDD Playground - PHPでの実装サンプル。
  • Eric Evans DDD Cargo Sample - エリック・エヴァンズのDDD書籍で使用されたPHP 7版のキャロットサンプル。
  • Shop Cart in PHP - 買い物かごのシンプルな構造を示すサンプルプロジェクト。ドメインオブジェクト、Doctrine統合、TDD、レイヤー、ユニットテスト。
  • Symfony 5 DDD ES CQRS backend - SymfonyとPHP 8を用いたDDD、CQRS、イベントソースアプリケーション。

ライブラリとフレームワーク

Go

  • Ginkgo - GinkgoはGoのテストパッケージをベースにし、表現力の高い行動駆動開発(BDD)スタイルのテストを可能にします。
  • GOBDD - GO向けの小さなBDDフレームワーク。
  • GoConvey - ブラウザ上でGoでのテスト。go test と統合。Goで行動テストを書く。
  • Godog - godogパッケージはGolang用の公式Cucumber BDDフレームワークであり、仕様とテストドキュメンテーションを一つの統合された全体として統合し、Given、When、Then形式のGherkin形式のシナリオを使用する。

.NET

  • Aggregates.NET - .NETにおけるイベントソースドメインドリブン設計モデルをNServicebusとGetEventStoreで実現。
  • AggregateSource - アグリゲートを使用したイベントソースを実行するための軽量インフラストラクチャ。
  • Akka.NET - Akka.NETは、.NETおよびMono上で高スレッド性、分散性、障害耐性を備えたイベント駆動アプリケーションを構築するためのツールキットおよびランタイム。
  • ABP - ASP.NET Boilerplateの継承者——N層構成、ドメインドリブン設計を採用したWebアプリケーションフレームワークで、マイクロサービスに焦点を当てたモジュラーフレームワークを提供。
  • ASP.NET Boilerplate - ASP.NET MVC、Web APIおよびASP.NET Coreに基づくアプリケーションフレームワークで、N層構成、ドメインドリブン設計を採用したWebアプリケーションを実装し、ベストプラクティスを適用。
  • ByValue - このライブラリは、コレクションプロパティを含むValueObjectの作成を支援し、適切に実装された等価性の振る舞いを提供する。
  • Cedar.CommandHandling - HTTP上のコマンドを処理するためのミドルウェア;通常はCQRSアプリケーションで使用。
  • Cirqus - d60イベントソース+CQRSフレームワーク。
  • CommandQuery - 🌐ASP.NET Core ⚡AWS Lambda ⚡Azure Functions ⚡Google Cloud Functions 🌐ASP.NET Web API 2におけるコマンド・クエリ分離。
  • CoreDdd - DDDおよびCQRSを支援するオープンソース.NETライブラリのセット、NHibernateによる永続化を含む。
  • CQRS on Azure Windows AzureにおけるCQRS。
  • Dolittle - Dolittleでより良いアプリケーションを構築。イベントソース、マイクロサービスプラットフォームであり、開発者の生産性と簡易性を最優先に設計。
  • Edument CQRS and Intentful BDD Testing Starter Kit - CQRS/ESアプリケーションの構築方法に関するライブラリおよびチュートリアル、BDDスタイルのテストフレームワークを含む。
  • EventFlow - .NET向けのAsync/awaitを第一に設計したCQRS+ESおよびDDDフレームワーク http://geteventflow.net/.
  • Core.EventStore - CommandServiceとQueryService間の通信を支援するライブラリ。イベントがCommandServiceで発生した際、QueryServiceのMongoDbに保存されるように設計されている。
  • Its.Cqrs - CQRSおよびイベントソースを支援するライブラリセットで、ドメインドリブン設計の味方を提供。
  • Marten - Postgresqlを.NETアプリケーションのドキュメントデータベースおよびイベントストアとして使用。
  • MassTransit - .NET向けの分散アプリケーションフレームワーク。
  • MediatR - リクエスト/レスポンス、コマンド、クエリ、通知、イベントをサポートし、同期および非同期で、C#のジェネリックバリアンスを用いた知的なディスパッチを実現。
  • MessageRouter - この動画で説明されている: The Beating Heart of CQRS, or Actor-Based Message Routing on the CLR による Paulmichael Blasucci の New York F# .NET User Group の発表.
  • NetDevPack - .NET を使用した開発効率の向上を目的とした、よく使われるクラスと実装のスマートなセット (DDD, CQRS, Specification Pattern, MediatR, Validations, Notifications).
  • NEventStore - イベントソースをストレージメカニズムとして使う場合に、異なるストレージ実装を抽象化するための永続性ライブラリ.
  • NServiceBus - .NET 用のサービスバス.
  • OpenCQRS - OpenCQRS は DDD, CQRS, イベントソースをサポートする .NET フレームワークであり、シンプルなメディエーターとして利用可能であり、Cosmos DB または Entity Framework Core をストレージとして使う場合の完全なイベントソースソリューションとしても利用可能。Service Bus, RabbitMQ, Redis Cache, Memory Cache, FluentValidation などに内蔵されたサポート機能を備えている.
  • Projac - Projac は、さまざまなバックストアに向けたプロジエクションを書けるプロジエクションライブラリのセット.
  • shriek-fx - .NET Core 2.0 を使用して開発された、シンプルで洗練されており、有用なドメインドリブンデザインと CQRS フレームワーク.
  • SqlStreamStore - SQLベースの実装をターゲットとした .NET ストリームストアライブラリ.
  • Stratara - .NET 用の CQRS およびイベントソースフレームワークで、タップアンドエビデンスストリームとテナント認識暗号化を提供し、統合されたメディエーター、アウトボックス、サガ、プロジエクションを提供.
  • Streamstone - Azure Table Storage 用のイベントストア.
  • Stringly.Typed - 文字列を .NET 型に変換する際の、より簡単で効率的な方法を提供する.
  • Xer.Cqrs - C# で開発された .NET Standard 1..0 をターゲットとした、CQRS パターンに基づくアプリケーションを作成するためのシンプルなライブラリ。属性ルーティングとホストされたハンドラーをサポートしている.
  • Deveel Repository - .NET 用のリポジトリパターンのシンプルな実装で、MongoDB および Entity Framework をサポートし、モデルにキャッシュ、ページング、バリデーションなど、さらに多くのユーティリティを拡張している.
  • Deveel Events- .NET アプリケーションにおけるイベントの公開および購読を簡単に行えるフレームワークを提供しており、複数のメッセージチャネル(例:RabbitMQ, Azure Service Bus など)およびさまざまなシリアル化形式(例:JSON, XML など)をサポートしている.

データベース

  • Event Store - JavaScript で実装されたオープンソースの機能的なデータベースで、複雑なイベント処理を提供している.
  • Eventsourcing - ビジネスイベントのキャプチャおよびクエリフレームワーク.
  • Message DB - Postgres 用のマイクロサービスネイティブイベントストアおよびメッセージストア。Pub/Sub、イベントソース、メッセージング、イベントドリブンマイクロサービスアプリケーション向けに完全に機能するイベントストアおよびメッセージストアを PostgreSQL で実装している.
  • Serialized - イベントソースおよび CQRS 用の完全なプラットフォーム.

Elixir

  • Commanded - CQRS/ES アプリケーション向けのコマンドハンドリングミドルウェア、アグリゲートおよびプロセスマネージャー用の純粋な関数データ構造、ポイントツーポイントメッセージルーティングなど、Elixir(Erlang VM)で実装されたもの。すべてアクター並列モデルで構成されている.
  • Event Bus - ETS をベースにした、トレース可能で拡張可能かつミニマリストなイベントバスの実装。内蔵されたイベントストアとイベントウォッチャーを備えている。
  • eventstore - PostgreSQLを永続化として使用するCQRSイベントストア

JavaScript / TypeScript

  • cqrs.js - node.jsにおけるCQRSの実装。含まれる node-eventstore, node-cqrs-domain, node-eventdenormalizer, node-cqrs-saga
  • wolkenkit - JavaScriptおよびNode.js向けのCQRS、DDD、イベントソースフレームワーク。
  • Bitloops Language (BL) - オープンソースで、4世代のトランスパイルプログラミング言語であり、DDDおよびヘキサゴナルアーキテクチャを用いて、テスト可能、確認可能、維持可能な高品質ソフトウェアを書くことを支援します。
  • Booster - CQRS、DDD、イベントソースを用いたオープンソースフレームワーク。すべてのインフラを活用し、高度な抽象化と規約を提供。ユーザーはビジネスロジックに集中できるように、高度なイベント駆動アプリケーションを構築できるようになります。
  • Node API Boilerplate - DDDおよびクリーンアーキテクチャアプリケーション向けのNodeJSウェブAPIのボイラプレート。
  • nestjs-hexagonal - Claude CodeプラグインによるNestJSの境界コンテキスト構築。ヘキサゴナルアーキテクチャ、DDD、CQRS、イベント駆動パターンを用いる。

JVM

  • akka-ddd - Akkaプラットフォーム上でCQRS/DDDベースのアプローチを用いたアプリケーション開発に必要な再利用可能なアーティファクト。
  • Apache Isis - Apache IsisはJavaでドメインドリブンアプリケーションを高速開発するためのフレームワーク。
  • Axon Framework - Axonフレームワークは、CQRS原則に基づくJavaアプリケーションを作成する開発者にとって、開発をしやすくするためのもの。
  • DDDplus framework - DDDに基づく複雑なビジネスアーキテクチャを実現する軽量で柔軟な開発フレームワーク。
  • JESA - Java向けのイベントソースアグリゲート。
  • Lagom - Lagomフレームワークは、Java仮想マシン向けのマイクロサービスフレームワークであり、JavaおよびScala言語のAPIを提供。イベントソース/CQRSベースの永続化モジュールを含む。
  • Pure Assert - 軽量かつ依存関係のないJavaライブラリ。純粋な入力断言とドメイン不変性を表現するためのもの。
  • SeedStack’s Business Framework - ドメインドリブン設計(DDD)アプローチに基づいてビジネスロジックをコードするための構成ブロックのセット。
  • Spine Event Engine - クラウドアプリケーション開発向けのCQRS/ESフレームワーク。プロトブの構文で境界コンテキスト、コマンド、イベント、エンティティ状態を定義。バックエンドロジックは、プロトコード生成に基づくJavaで実装。Java、JSまたはDartのクライアントコードはgRPCを介してバックエンドと通信。
  • Ahoo-Wang/Wow - DDDおよびイベントソースに基づく現代的な反応型CQRSアーキテクチャマイクロサービス開発フレームワーク。

PHP

  • Broadway - Broadwayは(PHP)プロジェクトで、CQRSおよびイベントソースアプリケーションのインフラとテスト支援を提供。
  • CodefyPHP Framework - ドメインドリブン設計、CQRS、イベントソースを用いて複雑なアプリケーションをコード化・構築するためのPHPフレームワーク。
  • Ecotone - PHPにおけるメッセージ駆動アーキテクチャを可能にし、DDDおよびCQRSの原則を実現するための構成ブロックを提供。
  • PHP Glossary - 項の分析を適用して、領域用語と範囲外用語をDDD方式で抽出する。

Python

  • Eventsoucing in Python - 成熟し、安定したPythonライブラリ。イベントソーシングとDDDをサポートし、さまざまなデータベース、ドメインイベントの順序、アプリケーションレベルの暗号化、スナップショット、最適な競合制御、イベントプロセスをサポート。アプリケーションやその全体のシステムはインフラに依存せず定義でき、単一スレッド、マルチスレッド、クロック付き、ステップモード、マルチプロセス、アクターモデルなどさまざまな実行方式とインフラで動作できる。
  • dry-python - プラグイン可能なビジネスロジックコンポーネント向けのライブラリセット。
  • PyAssimilator - DDD Pythonパターン、イベントベースシステム、CRUDアプリケーションを迅速に作成。SQLAlchemy、MongoDB、Redis、または純粋Pythonをサポートするデータベースアクセス用のPythonパターンセット。PyAssimilatorは、依存関係のないコードを書けるため、SQLをNoSQLに変更しても、システム内の1つのファイルも変更しなくてもよい。

Ruby

  • Eventide - Ruby向けのイベントソーシングとマイクロサービススタック。イベント駆動型、自律サービスを書くためのライブラリセット。
  • Rails Event Store - Rails Event Store (RES) は、イベントの発行、消費、保存、取得を行うためのライブラリ。Railsアプリケーションでイベント駆動アーキテクチャを採用する際の最適なパートナー。

ポッドキャストとインタビュー

カンファレンス

ユーザーグループ

ツール

  • Domain Storytelling - 関与する人々が領域を理解し、共有された理解を表現するモデルを導き出すための知識の整理技術。print-out templateとして提供され、オープンソースのオンラインツール WPS Modelersource)も提供。
  • DDD Toolbox - 現代のウェブベースツールのオープンソースコレクション。領域ストーリーリングとイベントストーミング(Source Code)を含む。

ライセンス

CC0

法的に可能である範囲で、Nick Chamberlain はこの作品に関するすべての著作権および関連又は隣接する権利を放棄した。