Non-Functional Architecture

Functional architecture contains business behavior: states, transitions, rules, and handlers. Non-functional architecture (NFA) contains infrastructure that makes this behavior executable.

NFA does not understand the business domain. It does not know what a patient is, what a visit is, or what an appointment means.

Non-functional architecture does not understand the business. It understands how work moves through the system.

What NFA Is Responsible For

NFA provides the technical services that functional components need in order to run:

The key point is that these responsibilities are generic. They apply regardless of the business domain being executed.

How NFA Works With Functional Architecture

Functional components (state handlers and transition handlers) implement business responsibility. NFA connects them together so that a business process can execute end-to-end.

In this architecture, a unit of work is represented as a data container that carries both business data and routing metadata.

NFA uses that metadata to determine:

The functional handler performs business work. NFA performs coordination.

Management System and Request Redirector

In this book, NFA is represented by two key infrastructure components:

Non-functional architecture coordinating functional architecture

You can think of the management system as the conductor of an orchestra. It does not play instruments. It ensures that the right instruments play at the right time.

Why This Separation Matters

When functional architecture is isolated from NFA:

The separation is not theoretical. It prevents the business domain from becoming locked into a specific framework, deployment platform, or communication technology.

Summary

Non-functional architecture provides execution infrastructure. It coordinates how work flows through the system without interpreting its meaning.

Functional architecture provides business behavior. NFA makes it run without becoming part of it.

Table of Content Software Architecture Previous: Functional Architecture Next: Runtime Handler Discovery