Business processes management subsystem

🌐 This document is available in both English and Ukrainian. Use the language toggle in the top right corner to switch between versions.

1. Overview

The Business process management subsystem:

  • Ensures the execution of automatic and semi-automatic business processes with user participation.

  • Manages the tasks of entering data via UI forms and applies validation rules.

  • Stores data and users' digital documents until they are entered into the registry.

  • Provides the history of services provided and received by the user.

2. Subsystem functions

  • Viewing business processes available for execution.

  • Managing user-initiated business processes.

  • Managing business process tasks assigned to the user.

  • Orchestrating the execution of business processes according to digital regulations.

  • Providing schemas for data entry UI forms for user tasks.

  • Entering data and digital documents through the UI forms of business process tasks.

  • Validating data and digital signatures provided through the UI forms of business process tasks according to the configured rules.

  • Viewing the history of services provided and received by the user.

  • Viewing the history of completed user tasks.

3. Technical design

The following diagram presents the Business process management subsystem’s components and their interactions with other subsystems in the scope of the implementation of functional scenarios.

bpms subsystem design

4. Subsystem components

Component name Registry representation Source Repository Function

Business process management service

bpms

origin

github:/epam/edp-ddm-bpms

A service based on the Camunda BPM technology. Manages the process of executing business process models (BPMN) and business rules (DMN) of the registry.

User processes management service

user-process-management

origin

github:/epam/edp-ddm-user-process-management

A service that provides a REST API for managing business processes through user portals and orchestrates the execution of requests.

User tasks management service

user-task-management

origin

github:/epam/edp-ddm-user-task-management

A service that provides a REST API for managing the execution of tasks through the user portals and orchestrates the execution of requests.

UI forms provider service

form-schema-provider

origin

github:/epam/edp-ddm-form-schema-provider

A service that prepares the JSON structures of the tasks' UI forms for display in the user portal and provides a REST API for receiving them.

UI form data validation service

form-submission-validation

origin

github:/epam/edp-ddm-form-submission-validation

A service that validates data provided by the users through the portal’s UI forms according to registry and regulations configuration.

Digital documents service

digital-document-service

origin

github:/epam/edp-ddm-digital-document-service

A service that provides temporary storage for the user-provided files until they are saved in the registry or registry files, access to which was granted within the scope of the business process.

Business process history access service

process-history-service-api

origin

github:/epam/edp-ddm-process-history-service-api

A service that provides a REST API for accessing historical data about the execution of business processes and user tasks.

Business process history logging service

process-history-service-persistence

origin

github:/epam/edp-ddm-process-history-service-persistence

A service that logs changes in the state of execution of business processes and user tasks.

Business processes operational database

operational:camunda

origin

github:/epam/edp-ddm-registry-postgres/tree/main/platform-db/changesets/camunda

A database that stores service data of the deployed business processes, authorization settings, state of execution of business processes, state of variables, etc.

Business process historical data operational database

operational:process-history

origin

github:/epam/edp-ddm-registry-postgres/tree/main/platform-db/changesets/process_history

A database that stores business processes and registry tasks execution history.

Operational storage of intermediate UI form data

redis:bpm-form-submissions

origin

-

Temporary storage for data provided by the users through the tasks' UI forms until it is saved in the registry.

Operational storage of intermediate BP message data

redis:bpm-message-payloads

origin

-

Temporary storage for data provided as input parameters with messages for initiating business processes.

Operational storage of UI form schemas

redis:bpm-form-schemas

origin

-

Storage for JSON structures describing registry UI forms.

Operational storage of UI form scripts

redis:bpm-form-scripts

origin

-

Storage for JavaScript scripts used in the registry UI forms.

Operational storage of BP digital documents

ceph:lowcode-file-storage

origin

-

Temporary storage for digital document files for use during the execution of the business processes.

5. Technological stack

The following technologies were used when designing and developing the subsystem:

6. Subsystem quality attributes

6.1. Observability

The Business processes management subsystem supports logging and collecting general performance metrics for analysis through the web interfaces of respective Platform subsystems.

Additionally, business process execution metrics are exported to facilitate diagnostics and analysis of system behavior, aiming for timely corrective actions.

6.2. Scalability

The Business processes management subsystem is designed to efficiently handle increased load and a growing number of business processes and users. It supports both vertical and horizontal scaling with load distribution between replicas.

6.3. Security

The Business processes management subsystem is accessible only to authorized users through the External traffic management subsystem of the registry operational zone. This access is controlled by Role-Based Access Control (RBAC), ensuring protection against unauthorized access and other security threats and safeguarding critical business processes and sensitive data.

All communication between subsystem components occurs over a secure channel with mandatory identification, authentication, and traffic encryption between services (mTLS).

6.4. Flexibility

The Business processes management subsystem ensures the ease and speed of making changes to the business logic of digital services within the registry. This is achieved through the support of the declarative description concept of business processes (BPMN) and other components of digital regulations.

For details on the subsystems that handle modeling and updating the digital regulations, see:

6.5. Interoperability

The Business processes management subsystem provides extensive integration capabilities for the registry, thanks to a wide range of standard integration connectors with support for REST and SOAP protocols.

For details on the subsystem design, see:

6.6. Auditability

The Business processes management subsystem is capable of capturing all the significant changes in the state of execution of business processes and user tasks, with the ability to set the level of audit logging.