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.
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.
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.
In this book, NFA is represented by two key infrastructure components:
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.
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.
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