Functional Architecture

Functional architecture (also called business domain architecture) defines how a software product executes business processes. The following sections introduce its core concepts.

Business Data

Business activity is expressed through data. Customers, employees, orders, documents, payments, and appointments are examples of business data used by a business process.

Metadata

A business process also needs information about its own execution. This information is metadata. It may describe routing, validation results, exceptions, diagnostics, or the current processing status.

Business Context

A business context represents everything a business process needs in order to continue its execution. It consists of business data and the metadata describing the execution of the process. Because business activity is expressed through data, that context must accompany the business process as it progresses. Every component participating in the process must work with the same business context. Business Process Programming achieves this by using a data container to carry that context.

State Handlers

A business process state is handled by a state handler. In an interactive application, the state handler is typically a page or component that:

A state handler does not determine the next state. It starts a business process transition by raising a trigger and providing the required input data.

Transition Handlers

A transition is executed by a sequence of transition handlers distributed across logical layers. Each handler performs its responsibility and either completes the request or passes it forward.

Summary

Functional Architecture owns the Business Context.

Functional architecture defines how a software product executes business processes. It organizes business behavior around business data and metadata, represented together as a business context, and around the handlers that process that context.

Together, these concepts provide a simple and consistent model for implementing business processes while keeping business behavior clear, maintainable, and independent of the underlying infrastructure.

Table of Content Software Architecture Previous: Layered Architecture Next: Non-functional Architecture

 


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.