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

 


Business Process Programming in .Net
© 2004–2026 Laskarzhevsky Software Inc.
Unless otherwise noted, the content of this website is licensed under the Creative Commons Attribution 4.0 International License (CC BY 4.0).
Code examples are provided under the MIT License.
You are free to share and adapt the material provided that appropriate credit is given and any modifications are clearly indicated.
The information provided on this website is for educational purposes only.
The author and publisher make no warranties regarding the completeness or suitability of the information and are not responsible for any damages resulting from its use.