Version: 1.0
Date: February 9, 2026
Status: Planning
This document outlines planned future enhancements for ThemisDB's BPMN/process engine and wire protocol. These improvements aim to enhance performance, accuracy, and integration capabilities.
Current State:
The wire protocol currently uses JSON for message serialization.
Planned Enhancement:
Migrate to binary Protocol Buffers (protobuf) for improved performance and efficiency.
Benefits:
- Performance: Binary serialization is significantly faster than JSON parsing
- Size: Smaller message payloads reduce network overhead
- Type Safety: Strong typing and schema validation at compile time
- Backward Compatibility: Protobuf supports schema evolution
References:
Current State:
The process history events currently use token creation time for all history events, which doesn't accurately reflect when each individual node was visited during execution.
Planned Enhancement:
Implement individual node visit timestamp tracking to capture the actual time each process node is visited during execution.
Benefits:
- Accurate Metrics: Precise timing information for each process step
- Better Analytics: Improved bottleneck detection and performance analysis
- Detailed Audit Trail: Complete temporal tracking of process execution
- SLA Monitoring: Accurate measurement of time spent at each process node
Implementation Notes:
- Add
visited_attimestamp field to process history events - Update token advancement logic to record timestamp for each node visit
- Extend process mining queries to leverage individual node timestamps
Current Code Location:
src/index/process_graph.cpp- Token creation and advancement logicinclude/index/process_graph.h-ProcessToken(created_at_ms,visited_nodes) andProcessGraphManager::getNodeHistoryAPIs
Current State:
ProcessGraphManager integration assumes it is already initialized with process definitions before use.
Planned Enhancement:
Implement explicit initialization checks and provide clear initialization patterns for ProcessGraphManager integration.
Benefits:
- Robustness: Prevent runtime errors from uninitialized state
- Clear API: Explicit initialization contracts for integrators
- Better Error Messages: Clear feedback when process definitions are missing
- Developer Experience: Easier integration and debugging
Implementation Considerations:
- Add
isInitialized()method to ProcessGraphManager - Provide
validateProcessDefinitions()helper method - Update documentation with initialization best practices
- Add initialization state checks before execution operations
Current Code Location:
include/index/process_graph.h- ProcessGraphManager class definitionsrc/index/process_graph.cpp- ProcessGraphManager implementation
- Process Mining Guide - Process mining capabilities and usage
- Process Mining Summary - Process mining implementation overview
- Process Mining Research and Roadmap - Detailed research and roadmap
- Wire Protocol v1 - Current wire protocol specification
- Binary Protocol Buffers - Binary protocol extensions
These enhancements are planned for future releases. Implementation priority and timeline will be determined based on project roadmap and resource availability.
Last Updated: April 2026
Status: Planning