Rwvueuvxr2f9unjymdb9
SkillsCast

Leveraging Metamodels and DCI to Build Modular Monoliths

29th May 2019 in London at Business Design Centre

There are 52 other SkillsCasts available from µCon London 2019 - The Conference on Microservices, DDD & Software Architecture

Please log in to watch this conference skillscast.

Https s3.amazonaws.com prod.tracker2 resource 41088130 skillsmatter conference skillscast o9nohu

In your typical "big-ball-of-mud" monolith, both (horizontal) layers and (vertical) subdomains become intertwined. Architectural constraints are needed to prevent this from happening. Microservices is one way to enforce those constraints, but if what you're really struggling with is modularity then this might be a case of using a hammer to crack a nut.

Metamodels provide a solution to the horizontal layering problem. In the same way that an ORM such as Hibernate uses a metamodel to separate the domain model from its persistence model, so too can a metamodel be used to - among other things - separate out the application and presentation layers.

Splitting vertical subdomains is a different challenge again, but DCI - an evolution of the well-known MVC pattern - is an architectural style that helps achieve that goal. Distinguishing between data (what the system is), interaction (what the system does), and context (what the user is trying to do), it sits somewhere between aspect-oriented and object-oriented approaches. Its the aspect-oriented nature that allows functionality to be partitioned into vertical submodules but nevertheless be presented in a coherent fashion to the end-user.

So much for the theory. In this live coding session we'll look at a framework that marries both of these techniques, resulting in applications with clean separation both vertically and horizontally.

YOU MAY ALSO LIKE:

Thanks to our sponsors

Leveraging Metamodels and DCI to Build Modular Monoliths

Dan Haywood

Dan is a freelance consultant, developer, writer and trainer, specializing in domain-driven design, agile development, enterprise architecture and also REST, on the Java and .NET platforms. Dan is known as an advocate of the naked objects pattern, and is the lead committer to Apache Isis, a Java framework that implements the naked objects pattern. He also works for several clients on enterprise and mobile apps, built on top of or leveraging Apache Isis.

SkillsCast

Please log in to watch this conference skillscast.

Https s3.amazonaws.com prod.tracker2 resource 41088130 skillsmatter conference skillscast o9nohu

In your typical "big-ball-of-mud" monolith, both (horizontal) layers and (vertical) subdomains become intertwined. Architectural constraints are needed to prevent this from happening. Microservices is one way to enforce those constraints, but if what you're really struggling with is modularity then this might be a case of using a hammer to crack a nut.

Metamodels provide a solution to the horizontal layering problem. In the same way that an ORM such as Hibernate uses a metamodel to separate the domain model from its persistence model, so too can a metamodel be used to - among other things - separate out the application and presentation layers.

Splitting vertical subdomains is a different challenge again, but DCI - an evolution of the well-known MVC pattern - is an architectural style that helps achieve that goal. Distinguishing between data (what the system is), interaction (what the system does), and context (what the user is trying to do), it sits somewhere between aspect-oriented and object-oriented approaches. Its the aspect-oriented nature that allows functionality to be partitioned into vertical submodules but nevertheless be presented in a coherent fashion to the end-user.

So much for the theory. In this live coding session we'll look at a framework that marries both of these techniques, resulting in applications with clean separation both vertically and horizontally.

YOU MAY ALSO LIKE:

Thanks to our sponsors

About the Speaker

Leveraging Metamodels and DCI to Build Modular Monoliths

Dan Haywood

Dan is a freelance consultant, developer, writer and trainer, specializing in domain-driven design, agile development, enterprise architecture and also REST, on the Java and .NET platforms. Dan is known as an advocate of the naked objects pattern, and is the lead committer to Apache Isis, a Java framework that implements the naked objects pattern. He also works for several clients on enterprise and mobile apps, built on top of or leveraging Apache Isis.

Photos