Smartflow is using separate databases for customer data and the Flowable engine data. This is a best practice for many reasons, including performance, robustness, and separation of concerns.
Separating customer data from engine data can improve performance by allowing each database to be optimized for its specific purpose. Customer data can be organized and indexed in a way that makes sense for the specific application, while the engine data can be optimized for workflow execution and management. This can result in faster response times, improved scalability, and a better user experience.
Separating the databases also improves robustness and reliability by reducing the risk of failures affecting both sets of data. If a problem occurs with one database, it is less likely to affect the other database, which reduces the risk of data loss or system downtime.
Finally, separating the databases can improve security by allowing for more granular control over access to the data. By separating the customer data from the engine data, you can control access to each database separately, which reduces the risk of unauthorized access or data breaches.