InfoQ Homepage Domain Driven Design Content on InfoQ
-
Design and Implementation of a DDD-Based Modular Monolith
Kamil Grzybek recently published a project where he has designed, implemented, and in detail described a monolithic application with a Domain-Driven Design (DDD) approach. His goal is to show how a monolithic application can be designed and implemented in a modular way. He also discusses some architectural considerations and design patterns he has found useful in the application.
-
Eric Evans Wants to Improve the Language of DDD
Eric Evans wants architects to actively engage in improving the language used when modeling and designing complex systems. Some of the fundamental terms used in DDD, such as Bounded Contexts, are often misunderstood. Evans wants to see an active community try to address these concerns, with the goal that DDD "should be a real, living body of thought."
-
Practical Domain-Driven Design with Events and Microservices - Indu Alagarsamy at QCon New York
Domain-driven design (DDD) concepts like Bounded Contexts and Messaging technologies can be used to build reliable systems that can scale with the business changes. Indu Alagarsamy recently spoke at QCon New York 2019 Conference about using the combination of well-defined bounded contexts and events to develop autonomous microservices that are flexible to adapt to the business changes.
-
Defining Bounded Contexts — Eric Evans at DDD Europe
A bounded context is a defined part of software where particular terms and rules apply in a consistent way, Eric Evans explained in his keynote at DDD Europe earlier this year; it should have a refined model and a language with unambiguous definitions. In a recently published presentation, he describes different kinds of bounded contexts, including some that involve microservices.
-
Migrating a Retail Monolith to Microservices: Sebastian Gauder at MicroXchg Berlin
In his presentation at MicroXchg in Berlin, Sebastian Gauder described how he and his teams migrated an existing food retail monolith at REWE, a large German company, into several business domains with 270 microservices, while increasing the number of teams from two up to 48. He also discussed the different design goals and rules they setup to make this possible.
-
Are Frameworks Good or Bad, or Both?
Preferring frameworks or libraries is somewhat controversial, Frans van Buul, Evangelist at AxonIQ, the company behind Axon Framework, writes in a recent blog post. Many argue in the favour of libraries but Van Buul thinks that a framework can be very valuable when building business applications. He believes this to be especially true for applications based on CQRS, DDD and event sourcing.
-
O’Reilly Publishes “The State of Microservices Maturity” Report
Microservices are evolving from fad to trend, according to “The State of Microservices Maturity” survey, published by O’Reilly. The report showed an overall positive attitude towards microservices among practitioners surveyed. One significant finding is that DevOps and microservices feed off each other, so that the success of one contributes heavily to the success of the other.
-
Readable Code - Why, How and When You Should Write It
Most people would say they want readable code, and may even prefer readability over functionality. But when it comes down to asking people to define readability, opinions will start to diverge. At Explore DDD 2018 , Laura Savino covered why we want readable code, what it really means to be readable, and when readability absolutely must take priority over other considerations.
-
Basic Concepts and the Future of Axon, a CQRS and Event Sourcing Framework
At the recent Event-Driven Microservices Conference in Amsterdam, Allard Buijze described in a presentation the basic concepts, the history and future of Axon, a framework for systems based on DDD, event sourcing and CQRS. The adoption of Axon Framework is growing rapidly and recently hit one million downloads.
-
Michael Feathers Wants Error Elimination to Be a Design Driver
Michael Feathers finds errors fascinating, but acknowledges that most developers don't spend a lot of time focusing on them. He also thinks most error handling is kind of giving up. Although best known for his books about working with legacy code, Feathers used his keynote presentation at Explore DDD 2018 to discuss how eliminating errors can be a design driver for software systems.
-
Eric Evans Says Domain-Driven Design (DDD) Isn't Done
During his keynote at Explore DDD, Eric Evans said "DDD isn't done." Over the past fifteen years since Domain-Driven Design was published, DDD hasn't stood still, and there is still much to do to keep DDD evolving.
-
Entity Services Increase Complexity: Tareq Abedrabbo Discusses Microservices Antipatterns
Entity services are a microservices anti-pattern, writes Tareq Abedrabbo, independent software consultant. The core reason for this is that they form shallow modules, where the interface is complex in relation to the functionality it provides.
-
QCon NY: Jonas Bonér on Designing Events-First Microservices
Events-first domain driven design (DDD) and event streaming are critical in developing a resilient and scalable microservices architecture. Jonas Bonér from LightBend engineering team spoke at QCon New York 2018 Conference last week about the events-first design.
-
Business Processes, Long-Running Services and Microservices
During recent years domain events are increasingly being discussed, but we should be discussing commands just as much, Martin Schimak explained at the recent DDD eXchange 2018 conference, where he covered events, command and long-running services in a microservices world, and how process managers and similar tooling can help in running core business logic.
-
Strategies for Decomposing a System into Microservices
A couple of years ago, Vladik Khononov and his team decided to start using microservices, but a few months later they found themselves in a huge mess. They concentrated on new cool technologies instead of thinking about how to decompose a system into microservices — finding the boundaries and where different functionalities should be located among these boundaries.