Session

Modernizing an existing system to take a more domain-driven approach

Domain-driven design seems “straight-forward” when looking at green field development. Implementing that in an existing enterprise system, however, is daunting. In this workshop we will demonstrate the steps necessary in refactoring a non-DDD SOA-based system using DDD approaches, especially Command-Query Responsibility Segregation (CQRS) and Event Sourcing patterns.

The use of a service-oriented architecture is not new. There are thousands of existing enterprise systems that are built using SOA. This would typically look like a set of “client applications” that talk to a set of “back-end services” that were designed using a one-size-fits-all approach, where the representation of a persisted object is a union of all the business needs. The growth in domain-driven design shows how that may not be the best approach.

This session will be a dive into the process of modernizing a SOA-based enterprise system to support a DDD approach. We will talk about what this looks like at a high level and then demonstrate how this is supported by using Command-Query Responsibility Segregation (CQRS) and Event Sourcing.

Simply put, CQRS is an approach where different models are used when reading information than is used when updating that information. This approach becomes especially important as designs start being domain-driven, because each participant in the enterprise may have a different representation of that information. These different representations would be best managed with separate models. As part of this session, we will demonstrate (sometimes in code):

- What a non-CQRS approach looks like (current state)
- What a CQRS approach looks like (new state)
- How you manage data conversion
- Why we would take this approach
- How to tell when you have gone wrong

Event sourcing is an approach where all of the changes to application state are stored as a list, or sequence, of events. As part of this session we will walk through (sometimes in code):

- How event sourcing fits into DDD
- How this need is managed now (current state)
- What the implementation looks like
- How you manage the conversion
- How you can evaluate the effectiveness

Lastly, we will walk through how these changes fit into the overall modernization strategy.

Bill Penberthy

Curmudgeonly Developer in a Modern Apps world

Seattle, Washington, United States

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top