Eventual consistency is a design approach for improving scalability and performance. Domain events, a tactical element in Domain-Driven Design (DDD), can help in facilitating eventual consistency, Florin Preda and Mike Mogosanu writes in separate blog posts, each describing the advantages achievable.
Command Query Responsibility Segregation (CQRS) is the starting point of a change that will have a profound impact on system architecture, Dino Esposito claims in three articles in MSDN Magazine. It’s the first step in an evolution transitioning software architects from the idea of “models-to-persist” to the idea of “events-to-log” and about event-based data instead of data snapshots.
After failing with two proof of concept, mainly with scalability issues, when trying to renew their main website the business decided to take a more agile and incremental approach and in a restart of the project inspired by Domain-Driven Design (DDD) having developers talk with domain experts, Chris Patuzzo explains describing the principles of DDD in the context of a real project.
Not interacting with domain experts is one of a common set of mistakes done when using Domain-Driven Design (DDD), finding and correcting them early on may save a team time, Daniel Whittaker claims describing ten mistakes he regularly see developers do.
Reuse has been a watch word for almost everything that has happened in system development during the last thirty years, but reuse is like cyanide; in really small portions it can be healthy, using it too much it starts doing a lot of damage, Udi Dahan claimed in his presentation giving a different perspective on business logic at this year’s DDD Exchange conference in London.
Creating and working with well-designed aggregates is one of the least well understood tactical patterns found in Domain-Driven Design, Vaughn Vernon explains in two articles giving some guidelines to composing aggregate boundaries and alternatives to an ORM when storing them.
Bounded Context concept from Domain Driven Design (DDD) can be used to divide a large model into smaller models using the Database Context (DbContext class) in Entity Framework (EF). Bounded Context creates smaller, more cohesive models with boundaries between models.
Greg Young, the lead architect behind the Event Store, recently talked about the Projections Library in the Event Store and how it can be used as a Read Model. In his presentation Greg explained what the Projections Library is, together with its main use cases. He also presented a number of examples of practical use.
Apache has released Apache Isis, a Java framework for rapidly developing domain-driven applications. Users focus on developing domain objects and Apache Isis takes care of persistence, security and the user interface. Apache Isis became an Apache top-level project in October 2012 and version 1.0 was released on December 2012.
The Patterns and Practices team at MSDN recently announced a CQRS Journey Guidance project – the project walks through building a fictional Contoso Conference Management System using DDD, CQRS and Event Sourcing.
At the recently concluded Domain Driven Design Exchange, the community talked of how Domain Driven Design is finally being understood independent of Object Oriented Design, and how it plays with emerging technologies like Functional Programming and REST.
At QCon San Francisco, 2008, Eric Evans answers questions about his recent activities and the evolution of DDD. During the interview he responds to questions about the relationship of DDD to usability, to FIT and FITnesse type testing, technology tools, and domain-specific languages. He also speaks about the DDD community as a whole.
In a recent entry, Phillip Calcado asks the question "What Is A Service?" and then goes on to describe how the answer to this lies with Domain Driven Design and ensuring that all stakeholders in an SOA development share the same understanding.
In this interview recorded at QCon San Francisco 2008 conference, Greg Young talked about how his team has been using Domain-Driven Design (DDD) concepts in their projects. He discussed how to manage domain state transitions in a Domain-Driven Design project. He also talked about Command Query Separation (CQS) design concept to keep the design cleaner and easier to test and maintain.
In this presentation held during OOPSLA 2008, Rebecca Wirfs-Brock reviews various forms of driven development in order to understand the principles and values of several design practices used today. By comparing them, a designer will get a broader view over design and will better understand which design practice is more appropriate for him.