We cannot generalize from one example. Until recently, DDD has been applied almost exclusively within a single paradigm of object-oriented programming with objects mapped into some form of server storage. Now that has changed.
DDD principles are being applied in functional programming, graph databases, and in document-based and event-oriented systems. This is beginning to give us perspective. Which DDD patterns apply to graphs or document systems? Do we need new building blocks or altered versions of old ones? We are learning about this now. In the process, we gain deeper insight into the essence of DDD, and how to focus where.
Several of the talks at DDD Exchange describe the explorations of some of our DDD experts in these directions. We are in the middle of this now, and, it is impossible to know where this will lead. Perhaps we will end up with refined approaches to apply DDD in diverse paradigms. Perhaps the new insight will come full circle, resulting in fresh approaches to DDD within object-oriented software. For now, we try new things and learn.
Excited? Share it!
Systems and Domains. Triplet Sons of Different Mothers
The domain model of an application describes the organization and partitioning of the business logic and rules. The business can look at that model and recognize itself. This is a good thing; but it's only part of the problem. An application is a system that connects the business domain model, the technical domain, and the specific use cases of a particular application. These three aspects of an application are often at odds with each other because they have opposing needs and affordances. It is the job of the System Architecture to balance those forces allowing these competing application aspects to work in harmony. Getting this right is critical to the lifecycle of the application and is an essential element in creating well-crafted applications.
Uncle Bob (Robert C. Martin)
Robert Martin (@unclebobmartin) is Master Craftsman at 8th Light, Skills Matter instructor and author of a range of books (as well as hundreds of articles), including: Clean Code: A Handbook of Agile Software Craftsmanship as well as his most recent, Clean Architecture: A Craftsman's Guide to Software Structure and Design.
Rethinking Enterprise Software
Alberto Brandolini
Alberto Brandolini can model every business domain, given enough space, a paper roll and an unlimited source of colored sticky notes (with a preference for orange ones). He calls this stuff EventStorming.
Email, Ubiquitous Language, Visualization & Clojure: Eric's Sandbox Project
It's Eric's Sandbox Project! Find out more in this SkillsCast recording of Eric's talk.
If this talk inspired you to learn more about CQRS and DDD, you may like to check out more here:
CQRS Questions & Answers on Stackoverflow
Github Repository: Simple CQRS example on Github by Greg Young
Github repository: Deploying the Domain Model Pattern
Upcoming CQRS talks, conferences and meet ups for and by the Skills Matter Community
SkillsCast recordings of talks on CQRS that have been given for and by the Skills Matter community
Eric Evans
Eric Evans, author of Domain-driven Design: Tackling Complexity in the Heart of Software is a thought leader in software design, domain driven design and domain modeling and particularly focuses on strategic design.
Welcome: Eric Evans
Eric Evans
Eric Evans, author of Domain-driven Design: Tackling Complexity in the Heart of Software is a thought leader in software design, domain driven design and domain modeling and particularly focuses on strategic design.
PARK BENCH PANEL DISCUSSION
Zi Makki
Just another .net developer that loves doing 'stuff' for the community.Zi is on the DDD committee and is helping out with WebDD wherever possible.
PARK BENCH PANEL DISCUSSION
Zi Makki
Just another .net developer that loves doing 'stuff' for the community.Zi is on the DDD committee and is helping out with WebDD wherever possible.
DDD with Ruby on Rails and MongoDB
Ruby has a rich OSS ecosystem, a vibrant agile development community, a strong commitment to design, and many talented modelers and designers. Yet using DDD to do strategic design and domain modeling is virtually unknown in the Ruby community. This presentation is an attempt to bridge the gap via an exploration of what DDD might look like through Ruby/NoSQL-coloured glasses. The basis for this will be a port of the DDD sample app to Ruby on Rails using MongoDB for persistence.
We'll cover interesting questions such as: How does the choice of Ruby affect the implementation of the DDD building block patterns? How well does an opinionated MVC framework like Rails support doing DDD? How well does an opinionated MVC framework like Rails support doing DDD? What are implications of choosing a document store like MongoDB for aggregate design and eventual consistency?
In the process we'll highlight significant lessons learned from porting the DDD sample app to Ruby/MongoDB, some significant concerns and aim to show potential ways forward.
Paul Rayner
Paul Rayner is a programmer, coach, mentor, trainer, and popular international conference speaker.
Miching Mallecho: Mischief, Motivation and Graph Models
Every model is motivated by a need; every model is constrained by its mode of representation. For decades our industry has favoured the directed graph as a means of expressing its modelling flights of fancy. We're surrounded by graphs: object graphs, entity-relationship diagrams--even our circle-and-lines whiteboard sketches. Why then do we surrender our graph competence at the last moment, when it comes to making our model durable? What mischief interrupts the path from thought to deed? In this session I'll discuss why and when we might consider applying a graph all the way down the stack, from whiteboard to persistent storage. I'll show how we encode our model's needs in the graph, and how a graph database helps fulfill the needs that motivate the model.
Ian Robinson
Ian Robinson is Director of Customer Success for Neo Technology, the company behind Neo4j, the popular open source graph database.
How DDD became an essential ingredient for competitive software in the energy sector
Exploring for oil is an expensive business, getting it out of the ground even more so. Discovering, describing and simulating oil reservoirs is a competitive software-intensive activity. The dominant players must provide unique advantages within the constraints of off-the-shelf software systems.
Domain models and their APIs, which provide firm foundations for innovative customisations, have emerged as a major product differentiaton in a billion dollar shrink-wrap software market. In this session I’ll illustrate the benefits and challenges – both technical and cultural – encountered by one company in applying DDD to “shared earth models” which were hitherto implicitly encoded in legacy systems. I’ll also discuss the all-important business imperatives that have motivated the adoption of domain modelling in the oil and gas software industry.
Robert Smallshire
Robert Smallshire is Founding Director of Sixty North, a software product and consulting business based in Norway. He has designed and implemented architectures for complex scientific and enterprise software in Python, C++, and C#, and is a regular speaker and coach.
Keynote: DDD and Actor Model
Vaughn Vernon
Vaughn is a veteran software craftsman, with more than 35 years of experience in a broad range of business domains, Vaughn is a leading expert in DDD and champion of simplicity and Reactive systems.
Document based messaging and analysis
Greg Young
Greg Young coined the term "CQRS" (Command Query Responsibility Segregation) and it was instantly picked up by the community who have elaborated upon it ever since.
-
Welcome: Eric Evans
Featuring Eric Evans
Eric Evans welcomes delegates to the DDD eXchange and outlines the day's proceedings.
ddd dddx domain-driven-design -
Keynote: DDD and Actor Model
Featuring Vaughn Vernon
Join us at Skills Matter for an exciting talk by leading expert Vaughn Vernon on DDD and Actor Model!
actor-model cqrs domain-driven-design ddd dddx -
Miching Mallecho: Mischief, Motivation and Graph Models
Featuring Ian Robinson
We're surrounded by graphs: object graphs, entity-relationship diagrams--even our circle-and-lines whiteboard sketches. Why then do we surrender our graph competence at the last moment, when it comes to making our model durable?
graph-models ddd dddx -
DDD with Ruby on Rails and MongoDB
Featuring Paul Rayner
Using DDD to do strategic design and domain modeling is virtually unknown in the Ruby community. This presentation is an attempt to bridge the gap via an exploration of what DDD might look like through Ruby/NoSQL-coloured glasses.
ruby nosql ddd dddx mongodb -
PARK BENCH PANEL DISCUSSION
Featuring Zi Makki
Before we break for lunch, join our experts on the first park bench. Put any of your morning's questions to them, and share your opinions!
ddd dddx -
Email, Ubiquitous Language, Visualization & Clojure: Eric's Sandbox Project
Featuring Eric Evans
Wondering what Email, Ubiquitous Language, Visualization & Clojure have in common?
ddd clojure ubiquitous-language domain-driven-design -
How DDD became an essential ingredient for competitive software in the energy sector
Featuring Robert Smallshire
In this session I’ll illustrate the benefits and challenges – both technical and cultural – encountered by one company in applying DDD to “shared earth models” which were hitherto implicitly encoded in legacy systems. I’ll also discuss the all-important business imperatives that have motivated...
api ddd dddx -
Rethinking Enterprise Software
Featuring Alberto Brandolini
After being exposed to so many good ideas in the past two years, I cannot design systems like I used to. Like a cook adding new spices to a traditional recipe, I'll explore unconventional modeling techniques derived from CQRS, Event Sourcing, Kanban, Management 3.0 and Theory of Constraints.
... cqrs event-sourcing kanban dddx -
Document based messaging and analysis
Featuring Greg Young
An exciting talk by leading expert Greg Young!
dddx -
Systems and Domains. Triplet Sons of Different Mothers
Featuring Uncle Bob (Robert C. Martin)
An application is a system that connects the business domain model, the technical domain, and the specific use cases of a particular application. These three aspects of an application are often at odds with each other because they have opposing needs and affordances. It is the job of the System...
dddx architecture domain-model -
-
DDDx — Domain-Driven Design eXchange 2021
Two days - Online Conference
Join us at Domain-Driven Design eXchange, a 2-day conference where you'll learn from thought leaders, architects and developers as you connect with likeminded people to share the skills, insights, lessons developed from your modelling, design and development projects.
architecture discovery ddd domain-driven-design -
DDD eXchange 2018
Two days in London
Want to hear the latest innovations in the DDD space from the world's DDD experts, and be able to share your own ideas and thoughts across great open sessions? Join us for DDD eXchange in April 2018! Skills Matter presents the 9th DDD eXchange London, the place to go if you're interested...
ddd dddesign eventstorming architecture tdd dddd -
DDD eXchange 2017
Two days in London
Want to hear the latest innovations in the DDD space from the world's DDD experts, and be able to share your own ideas and thoughts across great open sessions? Join us for DDD eXchange in April 2017! Skills Matter presents the 9th edition of the DDD eXchange London, the place to go if...
ddd domain-driven-design software-architecture event-storming modelling example dddesign -
DDD eXchange 2016
Two days in London
In June 2016 Skills Matter presents the 7th edition of the DDD eXchange London, the place to go if you're interested in Domain Driven Design and associated tools and processes. If you want to hear the latest innovations in this space from the world's DDD experts, and share your own ideas...
dddx ddd domain-driven-design software-architect -
DDD eXchange 2015
One day in London
We return this June for another edition of the DDD eXchange. The place to go if you're interested in Domain Driven Design and associated tools and processes.
ddd dddx domain-driven-design -
DDD eXchange NYC 2014
One day in New York City
Want to find out about the latest and greatest in DDD? Interested in meeting the rest of the community and big names like Eric Evans, Vaughn Vernon, and Paul Rayner?
domain-driven-design architecture ddd dddx -
DDD eXchange 2014
One day in London
Want to find out about the latest and greatest ideas & practices in DDD? Interested in meeting the rest of the community and big names like Eric Evans, Martin Thompson and Greg Young ? Then don't miss out on DDD eXchange 2014, where you'll discover all the latest ideas & practices...
domain-driven-design architecture ddd domain-modeling reactive-applications event-driven resilient scalable responsive eventstorming -
DDD eXchange NYC
One day in New York City
Want to keep up to date with the latest developments, in Domain Driven Design? Are you keen to learn and share skills with 200+ developers passionate about domain driven design?
domain-driven-design design-patterns architecture nhibernate repository-pattern cqrs dddxnyc -
DDD eXchange 2012
One day in London
Now in its 4th year, the DDD Exchange has become one of the focal points of the DDD community. Each year, DDD thought leaders come together with 100+ enthusiasts for a truly interactive session where we delve into the tricky questions that leaders in DDD are struggling with.
domain-driven-design design-patterns architecture nhibernate repository-pattern cqrs actor-model ruby-on-rails mongodb clojure -
DDD eXchange 2010
One day in London
The theme of this year's DDD eXchange will be architectural innovation, and particularly CQRS. We will feature leading thinkers and architects who will share their experience and Eric Evans is the programme lead.
domain-driven-design design-patterns architecture nhibernate repository-pattern cqrs actor-model ruby-on-rails mongodb clojure -
DDD eXchange
One day in London
Intensive, intimate one day event on Domain Driven Design, bringing together both international and UK experts on Domain Driven Design, Architecture and other interesting ideas and aproaches, including Behaviour Driven Design and Example Driven Design.
domain-driven-design design-patterns architecture nhibernate repository-pattern cqrs actor-model ruby-on-rails mongodb clojure