BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Domain-Driven Design Content on InfoQ

  • Selecting an Event Architecture

    When designing a distributed system, maybe based on microservices, and you are considering an event architecture, there are several models and technologies available. When choosing how to implement the architecture the non-functional requirements are a main factor, David Dawson claims when describing different styles of event architectures in a recent blog post.

  • Process Managers in Event-Based Systems

    Publishing events to notify about changes in a domain keeps different domains decoupled from each other, but if there really is a logical flow of events it becomes implicit and hard to follow. A better solution is to use a Process Manager to keep track of the overall process, Bernd Rücker stated in his presentation at this year’s DDD eXchange conference.

  • Capture - Embed - Protect, Guidelines for Domain-Driven Design

    When using the core philosophy and the practices of DDD as guidelines for software design and development, they can be summarized in three principles: Capture – Embed – Protect, Steven A. Lowe claimed in his presentation at this year’s DDD eXchange conference. Capture the domain model. Embed the model in the code. Protect the domain model from corruption from other domains.

  • The Importance of Patterns in DDD

    There are lots of patterns outside of Domain-Driven Design (DDD) that are important to know, and they will help you design better systems, Cyrille Martraire claimed in his presentation at the recent DDD Europe Conference in Amsterdam when discussing the importance of patterns.

  • Eric Evans: DDD is Not for Perfectionists

    A problem with Domain-Driven Design (DDD) since the beginning has been the too common hunt for perfect designs, but DDD is not for perfectionists. In order to stop that hunt you need to have some idea of how to create software that is well designed, yet not perfect, Eric Evans noted in his presentation at the recent DDD Europe Conference in Amsterdam.

  • The Dangers of If Statements in Domain Logic

    The if statement found in most programming languages has two major roles, validating input to protect the domain from erroneous data, and for dealing with business logic inside the domain. Unfortunately, we spend too little time managing the risks from a business or domain perspective, Udi Dahan claimed in his presentation at the recent DDD Europe Conference in Amsterdam.

  • Bringing the Domain Back to Software Development

    If you read the business press of today, you will find that the business side of the world sees IT as an impediment that holds them back. To overcome this, we need to shift focus from the machines to the domains and start reading and learning about the domains we are working in, David West noted in his presentation at the recent DDD Europe Conference in Amsterdam.

  • Start with Events and DDD When Building Microservices

    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.

  • Focus on the Process, Not on Individual 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 Anti-Patterns

    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.

  • Experiences with Behaviour-Driven Development

    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.

  • Data is the Hard Part Working with Microservices

    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.

  • Vaughn Vernon on Microservices and Domain-Driven Design

    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.

  • Experiences Using Event Storming

    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.

  • Eric Evans: Is Domain-Driven Design Beneficial for Software Development?

    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.

BT