Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

awesome-ddd

A curated list of Domain-Driven Design (DDD), Command Query Responsibility Segregation (CQRS), Event Sourcing, and Event Storming resources
https://github.com/heynickc/awesome-ddd

Last synced: 4 days ago
JSON representation

  • User Groups

  • Libraries and Frameworks

    • JVM

      • Apache Isis - Apache Isis is a framework for rapidly developing domain-driven apps in Java.
      • Axon Framework - The axon framework is focused on making life easier for developers that want to create a java application based on the CQRS principles.
      • Lagom - The Lagom Framework is a microservices framework for the Java Virtual Machine, with APIs for the Java and Scala languages. It includes an Event Sourcing/CQRS based persistence module.
      • SeedStack's Business Framework - A set of building blocks that enable you to code business logic according to the Domain-Driven Design (DDD) approach.
      • Spine Event Engine - a CQRS/ES framework for building cloud applications. Defines Bounded Contexts with their Commands, Events, and Entity states in Protobuf. The backend logic is written in Java, on top of the Proto-generated code. Client code in Java, JS or Dart communicates with the backend via gRPC.
      • Apache Isis - Apache Isis is a framework for rapidly developing domain-driven apps in Java.
      • Axon Framework - The axon framework is focused on making life easier for developers that want to create a java application based on the CQRS principles.
      • Lagom - The Lagom Framework is a microservices framework for the Java Virtual Machine, with APIs for the Java and Scala languages. It includes an Event Sourcing/CQRS based persistence module.
    • PHP

      • Ecotone - Enables message driven architecture in PHP and provides building blocks to follow DDD and CQRS principles.
      • Ecotone - Enables message driven architecture in PHP and provides building blocks to follow DDD and CQRS principles.
    • Python

      • dry-python - A set of libraries for pluggable business logic components.
      • Eventsoucing in Python - Mature, stable Python library for event sourcing and DDD. Supports wide variety of databases, different kinds of orderings of domain events, application level encryption, snapshotting, optimistic concurrency control, and process events. Applications, and entire systems of applications, can be defined independently of infrastructure, and run in different ways (single threaded, multi-threaded, clocked, stepping, multi-process, actor model) and with different infrastructure.
    • Ruby

      • Eventide - Event Sourcing and Microservices Stack for Ruby. A set of libraries for writing event driven, autonomous services.
      • Rails Event Store - Rails Event Store (RES) is a library for publishing, consuming, storing and retrieving events. It's your best companion for going with an event-driven architecture for your Rails application.
      • Eventide - Event Sourcing and Microservices Stack for Ruby. A set of libraries for writing event driven, autonomous services.
      • Eventide - Event Sourcing and Microservices Stack for Ruby. A set of libraries for writing event driven, autonomous services.
      • Rails Event Store - Rails Event Store (RES) is a library for publishing, consuming, storing and retrieving events. It's your best companion for going with an event-driven architecture for your Rails application.
    • .NET

      • Aggregates.NET - .NET event sourced domain driven design model via NServicebus and GetEventStore.
      • Akka.NET - Akka.NET is a toolkit and runtime for building highly concurrent, distributed, and fault tolerant event-driven applications on .NET & Mono.
      • ABP - Successor of ASP.NET Boilerplate - ASP.NET Core based application framework to create NLayered, Domain Driven Designed web applications with a microservice focused modular architecture
      • ASP.NET Boilerplate - ASP.NET MVC, Web API and ASP.NET Core based application framework to create NLayered, Domain Driven Designed web Applications implementing best practices.
      • Cedar.CommandHandling - Middleware to handling commands over HTTP; typically used in CQRS applications.
      • Dolittle - Build better applications with Dolittle. An Event Sourced, Microservice platform oriented around DDD with developer productivity and simplicity front and center.
      • Edument CQRS and Intentful BDD Testing Starter Kit - Library and tutorial for how to build CQRS/ES applications, including a BDD style testing framework.
      • MessageRouter - Described in this video: [The Beating Heart of CQRS, or Actor-Based Message Routing on the CLR](https://vimeo.com/171178586) by Paulmichael Blasucci at the New York F# .NET User Group.
      • NetDevPack - A smart set of common classes and implementations to improve your development productivity using .NET (DDD, CQRS, Specification Pattern, MediatR, Validations, Notifications).
      • Xer.Cqrs - A simple library for creating applications based on the CQRS pattern with support for attribute routing and hosted handlers. Developed in C# targeting .NET Standard 1.0.
      • Aggregates.NET - .NET event sourced domain driven design model via NServicebus and GetEventStore.
      • Akka.NET - Akka.NET is a toolkit and runtime for building highly concurrent, distributed, and fault tolerant event-driven applications on .NET & Mono.
      • ABP - Successor of ASP.NET Boilerplate - ASP.NET Core based application framework to create NLayered, Domain Driven Designed web applications with a microservice focused modular architecture
      • ASP.NET Boilerplate - ASP.NET MVC, Web API and ASP.NET Core based application framework to create NLayered, Domain Driven Designed web Applications implementing best practices.
      • Cirqus - d60 event sourcing + CQRS framework.
      • Dolittle - Build better applications with Dolittle. An Event Sourced, Microservice platform oriented around DDD with developer productivity and simplicity front and center.
      • Edument CQRS and Intentful BDD Testing Starter Kit - Library and tutorial for how to build CQRS/ES applications, including a BDD style testing framework.
      • Projac - Projac is a set of projection libraries that allow you to write projections targetting various backing stores.
      • Xer.Cqrs - A simple library for creating applications based on the CQRS pattern with support for attribute routing and hosted handlers. Developed in C# targeting .NET Standard 1.0.
      • Dolittle - Build better applications with Dolittle. An Event Sourced, Microservice platform oriented around DDD with developer productivity and simplicity front and center.
    • Databases

      • Event Store - The open-source, functional database with Complex Event Processing in JavaScript.
      • Eventsourcing - Business event capture and querying framework.
      • Serialized - Complete platform for Event Sourcing & CQRS.
      • Event Store - The open-source, functional database with Complex Event Processing in JavaScript.
    • JavaScript / TypeScript

      • cqrs.js - CQRS implementations in node.js. Includes [node-eventstore](https://github.com/adrai/node-eventstore), [node-cqrs-domain](https://github.com/adrai/node-cqrs-domain), [node-eventdenormalizer](https://github.com/adrai/node-cqrs-eventdenormalizer), [node-cqrs-saga](https://github.com/adrai/node-cqrs-saga).
      • wolkenkit - A CQRS, DDD, and event-sourcing framework for JavaScript and Node.js.
      • Booster - A CQRS, DDD and event-sourcing open-source framework that leverages all the infrastructure and uses high-level abstractions and conventions. It help users build advanved even-driven applications letting them focus on business logic exclusively.
      • cqrs.js - CQRS implementations in node.js. Includes [node-eventstore](https://github.com/adrai/node-eventstore), [node-cqrs-domain](https://github.com/adrai/node-cqrs-domain), [node-eventdenormalizer](https://github.com/adrai/node-cqrs-eventdenormalizer), [node-cqrs-saga](https://github.com/adrai/node-cqrs-saga).
      • wolkenkit - A CQRS, DDD, and event-sourcing framework for JavaScript and Node.js.
      • Booster - A CQRS, DDD and event-sourcing open-source framework that leverages all the infrastructure and uses high-level abstractions and conventions. It help users build advanved even-driven applications letting them focus on business logic exclusively.
    • Elixir

      • Commanded - Command handling middleware for CQRS/ES applications, Pure Functional Data Structures for Aggregates and Process Managers, Point-to-Point message routing, and much more in Elixir (Erlang VM) - All in Actor concurrency model.
      • eventstore - CQRS event store using PostgreSQL for persistence.
      • Commanded - Command handling middleware for CQRS/ES applications, Pure Functional Data Structures for Aggregates and Process Managers, Point-to-Point message routing, and much more in Elixir (Erlang VM) - All in Actor concurrency model.
      • eventstore - CQRS event store using PostgreSQL for persistence.
  • Tools

    • Ruby

      • Domain Storytelling - a knowledge-crunching technique that helps the people involved to familiarize themselves with the domain and work out a model that expresses their shared understanding. Available as a [print-out template](http://www.domainstorytelling.org/images/DST_Whiteboard-Kit.pdf), as well as open-source online tool, [WPS Modeler](https://www.wps.de/modeler) ([source](https://github.com/wps/domain-story-modeler)).
      • Domain Storytelling - a knowledge-crunching technique that helps the people involved to familiarize themselves with the domain and work out a model that expresses their shared understanding. Available as a [print-out template](http://www.domainstorytelling.org/images/DST_Whiteboard-Kit.pdf), as well as open-source online tool, [WPS Modeler](https://www.wps.de/modeler) ([source](https://github.com/wps/domain-story-modeler)).
  • Books

  • Free eBooks

  • Podcasts and Interviews

  • Conferences

  • Training Courses

  • Video Collections

  • Community Resources

  • Blogs

    • Ardalis.com - Steve Smith. Pluralsight author and author of [DDD Fundamentals](https://www.pluralsight.com/courses/domain-driven-design-fundamentals) course and Microsoft [eShopOnWeb sample app](https://github.com/dotnet-architecture/eShopOnWeb).
    • DDD Weekly - Weekly curated links related to DDD/CQRS/ES.
    • Daniel Whittaker - Want to learn about CQRS and Event Sourcing? This blog is packed with step-by-step articles to give you a head start.
    • Jimmy Bogard - I focus on DDD, distributed systems, and any other acronym-centric design/architecture/methodology.
    • CodeBetter - CodeBetter.Com exists in order to help foster awareness of better practices, superior tools, proven methodologies and techniques within the software development community.
    • Greg Young - Good Enough Software is By Definition Good Enough.
    • InfoQ Blog - Domain-Driven Design Content on InfoQ.
    • Dan North - Inventor of Behavior-Driven Design. Blogs and talks about Event Storming also.
    • Mike Mogosanu - Maintainable code is a business advantage. Creator of Domain Map: The Domain Modeling Tool - Easy And Powerful Domain Driven Design.
    • Christian Posta - Principal Middleware Architect @ Red Hat, open-source enthusiast, committer @ Apache, Cloud, Integration, Kubernetes, Docker, OpenShift, Fabric8.
    • Vladimir Khorikov - Pluralsight author. Blogs about software development principles and best practices.
    • Derek Comartin - Articles under the category *Domain Driven Design*.
    • Alberto Brandolini - Inventor of Event Storming. Asserting that problems cannot be solved with the same mindset that originated them, Alberto switches perspective frequently assuming the architect, mentor, coach, manager or developer point of view.
    • Jérémie Chassaing - Various articles about DDD/CQRS. Implemented Greg Young's SimpleCQRS sample in F#.
    • Vaughn Vernon - Vaughn Vernon understands the unique demands of software development and the challenges you face as you improve your craft in a fast-paced industry.
    • Vladik Khononov - Various DDD-related articles.
    • Eventsourcing Publications - Practical event sourcing.
    • Jef Claes - Excellent articles and talks on Domain-Driven Design.
    • Udi Dahan - From the creator of NServiceBus.
    • Chris Patterson - From the creator of the MassTransit distributed application framework.
    • Aaron Stannard - From the CTO and co-founder of Petabridge, developers of the Akka.NET Actor Model framework.
    • Roger Johansson - Mostly C#, DDD, and Akka.NET.
    • Konrad Garus - Ranting and Programming in Java, Clojure, and JavaScript. Articles tagged under *cqrs*.
    • Oasis Digital - Content by Oasis Digital tagged under *cqrs*.
    • Adaptech - Adaptech Solutions blog. Our founder, Adam Dymitruk, debated the merits of CQRS with Greg Young before Greg coined the term. Adam and business partner Robert Reppel are among the leading practitioners of event-sourced microservices.
    • Lev Gorodinski - Several articles about DDD from 2013, which are still relevant.
    • Dino Esposito - Software architect, trainer, book author. Author of [Microsoft .NET - Architecting Applications for the Enterprise (2nd Edition)](https://www.amazon.com/Microsoft-NET-Architecting-Applications-Enterprise/dp/0735685355/).
    • Dan Bergh Johnsson "Dear Junior" - Domain-Driven Design mixed with security, and agile in general. Written as fictional letters to a younger programmer.
    • the native web - DDD & Co. series
    • Arkency - Various DDD, CQRS, Event Sourcing related articles from Ruby experts.
    • Khalil Stemmler - DDD series introduction and talk about how to implement DDD with TypeScript
    • Kenny Baas-Schwegler - DDD, BDD, Socio-technical, EventStorming and continuous delivery blogs.
    • João Rosa - Personal blog about Domain-Driven Design, Visual Collaboration, leadership and organisational design. And other things in between. Curator of [Visual Collaboration Tools](https://leanpub.com/visualcollaborationtools/) and host of the [Software Crafts Podcast](https://www.softwarecraftspodcast.com/)
    • GlobalAppTesting engineering - GlobalAppTesting's engineering blog with materials on practical DDD and CQRS.
    • Daniel Whittaker - Want to learn about CQRS and Event Sourcing? This blog is packed with step-by-step articles to give you a head start.
    • Ardalis.com - Steve Smith. Pluralsight author and author of [DDD Fundamentals](https://www.pluralsight.com/courses/domain-driven-design-fundamentals) course and Microsoft [eShopOnWeb sample app](https://github.com/dotnet-architecture/eShopOnWeb).
    • DDD Weekly - Weekly curated links related to DDD/CQRS/ES.
    • Daniel Whittaker - Want to learn about CQRS and Event Sourcing? This blog is packed with step-by-step articles to give you a head start.
    • Greg Young - Good Enough Software is By Definition Good Enough.
    • Mike Mogosanu - Maintainable code is a business advantage. Creator of Domain Map: The Domain Modeling Tool - Easy And Powerful Domain Driven Design.
    • Christian Posta - Principal Middleware Architect @ Red Hat, open-source enthusiast, committer @ Apache, Cloud, Integration, Kubernetes, Docker, OpenShift, Fabric8.
    • Vladimir Khorikov - Pluralsight author. Blogs about software development principles and best practices.
    • TechBeacon - Articles on TechBeacon tagged *domain driven design*.
    • Derek Comartin - Articles under the category *Domain Driven Design*.
    • Alberto Brandolini - Inventor of Event Storming. Asserting that problems cannot be solved with the same mindset that originated them, Alberto switches perspective frequently assuming the architect, mentor, coach, manager or developer point of view.
    • Jérémie Chassaing - Various articles about DDD/CQRS. Implemented Greg Young's SimpleCQRS sample in F#.
    • Vladik Khononov - Various DDD-related articles.
    • Jef Claes - Excellent articles and talks on Domain-Driven Design.
    • Udi Dahan - From the creator of NServiceBus.
    • Aaron Stannard - From the CTO and co-founder of Petabridge, developers of the Akka.NET Actor Model framework.
    • Oasis Digital - Content by Oasis Digital tagged under *cqrs*.
    • Dan Bergh Johnsson "Dear Junior" - Domain-Driven Design mixed with security, and agile in general. Written as fictional letters to a younger programmer.
    • Kenny Baas-Schwegler - DDD, BDD, Socio-technical, EventStorming and continuous delivery blogs.
    • João Rosa - Personal blog about Domain-Driven Design, Visual Collaboration, leadership and organisational design. And other things in between. Curator of [Visual Collaboration Tools](https://leanpub.com/visualcollaborationtools/) and host of the [Software Crafts Podcast](https://www.softwarecraftspodcast.com/)
    • GlobalAppTesting engineering - GlobalAppTesting's engineering blog with materials on practical DDD and CQRS.
    • Cyrille Martraire - Being so immersed in finance while still in love with programming, I’m naturally a big fan of Domain-Driven Design by Eric Evans, along with TDD, BDD and agile/XP practices.
    • Svaťa Šimara - DDD series - language, domain, modeling, infrastructure, implementation in PHP
    • Martin Havlišta - DDD, CQRS, TDD blog posts with code samples in C# .NET
    • TechBeacon - Articles on TechBeacon tagged *domain driven design*.
  • Sample Projects