Engineering the Future of Software
29–31 Oct 2018: Tutorials & Conference
31 Oct–1 Nov 2018: Training
London, UK

How to build a modular monolith

Dan Haywood (Haywood Associates Ltd.)
14:1515:05 Monday, 29 October 2018
Application architecture
Location: King's Suite - Sandringham
Secondary topics:  Framework-focused
Average rating: **...
(2.12, 8 ratings)

Who is this presentation for?

  • Architects, developers, and IT managers

Prerequisite knowledge

  • Familiarity with the ideas behind domain-driven design
  • A working knowledge of Java
  • A basic understanding of the hexagonal architecture

What you'll learn

  • Understand why modularity is important for maintainable software and how modularity applies to layers and within the business layer
  • Explore sophisticated UIs developed with frameworks that employ the naked objects architectural pattern
  • Learn how to use Apache Isis for rapid exploration and development

Description

Microservice architectures are all the rage these days, but what’s really important for long-term maintainability is modularity. It isn’t necessary to use a network boundary to create such modules. Indeed, when exploring an unfamiliar business domain, it won’t immediately be obvious where the boundaries lie between those modules.

There is also a separation of concerns between the layers. The hexagonal architecture describes one way in which to accomplish this and is common practice while developing domain-driven apps. However, ensuring that business logic doesn’t leak between the layers can take a lot of effort.

Dan Haywood explains how he and a tiny one-and-a-bit-pizza team used Apache Isis—an implementation of the naked objects architectural pattern—to build an invoicing system, Estatio, for a real-estate company that owns and operates shopping centers across four countries. The “naked objects” bit provides rigid architectural constraints, preventing business logic leaking into adjacent layers. But the framework also provides a number of powerful tools to ensure that the modules within the domain layer itself are also decoupled from each other.

You’ll see what an Apache Isis app looks like in the flesh and learn how Dan and his team manage to keep it modular—a modular monolith.

Photo of Dan Haywood

Dan Haywood

Haywood Associates Ltd.

Dan Haywood is a freelance consultant, developer, writer, and trainer specializing in domain-driven design, Agile development, enterprise architecture, and 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 a client) on Estatio, an open source app that runs on top of Isis. You can find Estatio up on GitHub. Dan was instrumental in the success of the first large-scale naked objects system, which administers state benefits for citizens in Ireland, and he continues to serve as an advisor to the government. (The system has over 2,000 users and pays out over €5B a year in benefits.) Dan’s most recent open source work is the Restful Objects specification, which defines a hypermedia API for exposing domain object models. He is also a committer on Restful Objects.NET, an implementation for .NET on ASP.NET MVC. Dan is a regular presenter at various conferences and has written a good number of online and print articles. He’s also written a couple of books, including Domain Driven Design Using Naked Objects and Better Software Faster on the effective use of TogetherJ. Previously, Dan worked at Sybase UK, specializing in performance-n-tuning.