Architecture
The platform includes the following key components:
Process engine
Process Engine Manages the execution of business processes in BPMN 2.0 notation. The current architecture uses Camunda 8 (Zeebe): runtime state is stored in RocksDB inside the broker, and data for search and viewing is exported to secondary storage in Elasticsearch. Interaction with the platform uses the Camunda 8 REST API v2.
Cabinee Camunda 8 Exporter (
unibpm-camunda8-exporter) An exporter plugin loaded into the broker JVM. Publishes the engine record stream to Kafka. Does not store state.Cabinee Camunda 8 Adapter (
unibpm-camunda8-adapter) A service that reads the record stream from Kafka. Maintains the mapping between process instances and tickets (businessKey) in PostgreSQL and publishes state-change and user-task events to topics consumed by the Cabinee Backend.
Business logic
- Cabinee Backend Implements the platform business logic and provides a programmatic interface (REST API) for working with business data (Business Data) and processes. Stack: Spring Boot, Java, REST API; database — PostgreSQL.
User interface
- Cabinee UI Web interface for platform users. Implemented with React.
Security and authorization
- Keycloak User authentication and authorization. External identity providers are supported: Active Directory, LDAP, RADIUS, OAuth2. Stack: Spring Boot, Java, REST API.
Integration bus
- Kafka Internal Bus Internal event bus based on Kafka. Used for exchanging events between platform components and integrating with external services. The process-engine record stream also goes through it: the exporter publishes records, and the adapter converts them into ticket and user-task events.
Mail service
- Mail Service Subsystem for processing inbound and outbound messages. Protocols: SMTP / IMAP. Used for automatic notifications and working with external mail.
Integration platform
- Cabinee Integration Runtime Platform for processing external tasks (External Workers) and integrating with external IT systems.
Reporting subsystem
- Cabinee Reporting Subsystem for generating reports and analytics on processes and business data.
Interaction with external systems
The platform interacts with the external IT infrastructure through:
- REST API described with OpenAPI;
- Event exchange via Kafka Topics;
- Mail protocols SMTP / IMAP;
- Integration with authorization systems AD/LDAP/OAuth2.
The Cabinee architecture provides flexibility and scalability, and allows the platform to be deployed both in cloud infrastructures and in environments with heightened information security requirements (on-premises).
