Domain-Driven Design (DDD) is a great technique bringing designs closer to the domains we are working in, but too often we make early decisions with a focus on structure, which is not the intention of DDD. Instead we should start with the events in a domain, Russ Miles claims when describing the advantages of going “events-first” when building microservices.
The key to success when working with a microservices based distributed system is to focus on the distributed process as a whole, not on the microservices themselves. The services are the least important part, Eric Ess claimed at the recent Microservices Conference in London, in his presentation on how to monitor distributed processes at jet.com.
Behaviour-Driven Development (BDD) can help in improving how business stakeholders and software developers communicate with each other, but there are some common anti-patterns when using Cucumber to run the automated tests, which Aslak Hellesøy, Matt Wynne and Steve Tooke described in a recent discussion.
Behaviour-Driven Development (BDD) recognizes that software development is fundamental to businesses of today and helps to improve how business stakeholders and software developers communicate with each other, Kevin Smith claims in a recent blog post about his experiences working with BDD.
One of the hardest problem when creating and developing microservices for an enterprise is their data. Analysing the business domain using Domain-Driven Design (DDD) and reason about what your data represents will help in achieving a microservices architecture, Christian Posta claims in one of a series of blog posts about microservices implementations.
Although a monolith can be modeled in a respectable way, often they are turned into a big ball of mud. This is caused by multiple domain models becoming entangled within the monolith, and in Vaughn Vernon's experience this can happen within a few weeks or months, he claimed in a presentation at the Scala Days conference earlier this year.
In the context of Domain-Driven Design (DDD), Event Storming is incredibly useful and valuable, Dan North claimed in his presentation at the recent DDD eXchange conference in London, explaining the basic mechanics of Event Storming and sharing his experiences from modelling different systems during the last few years.
The last couple of years the interest in Domain-Driven Design (DDD) has increased, Eric Evans noted in his keynote at the recent DDD eXchange conference in London. He thinks that we are in a time when developers care more about design, partially because we are working more with distributed systems where models have a higher value.
Conversations with domain experts and the language used are central in Domain-Driven Design (DDD), but often this is hard because we don’t speak the same language, explained Cyrille Martraire in his presentation at the Domain-Driven Design Europe conference earlier this year when sharing his experiences working with domain experts in DDD-driven environments.
Projects and development teams are struggling with poorly designed systems, with many developers dedicated to patching systems just to keep them alive. Largely the software development culture is broken, Vaughn Vernon claimed in his presentation at the Domain-Driven Design Europe conference earlier this year, talking about problems he has encountered but also about solutions to these problems.
Microservices and Domain-Driven Design (DDD) are not only about Bounded contexts, although a fundamental tool for defining granularity of microservices there are other important concepts as well. Correspondingly DDD is just not about entities and repositories, Michael Plöd claimed in his presentation at the recent microXchg conference in Berlin showing how DDD can be used creating microservices.
User Story Mapping can be a simple yet valuable pattern when adopting Domain-Driven Design (DDD) in projects dealing with complex domains. It can help creating shared domain knowledge among developers and domain experts, Eriksen Costa claims in a blog post discussing advantages combining User Story Mapping with Domain-Driven Design (DDD).
Moving from a monolith to microservices the only value business stakeholders care about is reducing cost. It will not increase or protect revenue and neither scaling nor distribution are good reasons that will convince the business, Ian Cooper claimed in his presentation at this year’s Microservices Conference in London describing guidelines moving from a monolith to a microservices architecture.
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.