For the list of issues covered in this release, see the Changelog.
For information on upgrading from previous versions, see the
Migration guides.
2026-04-24
Summary
New featuresBreaking changesNew features
Database schema migrations with Liquibase
This release introduces Liquibase to manage database schema migrations in a versioned and repeatable way.A newPARENTBRANCH column is added to the DATASTORE_SIMULATIONS table to support chaining branches of what-if simulations. For existing databases, this column is applied automatically by Liquibase on startup. See the 4.1.3 to 5.0.0 migration guide for details.Branch chaining
Simulations can now target non-master parent branches, enabling multi-level branch hierarchies. This allows building simulation chains where one simulation uses another simulation’s branch as its starting point.For example, a simulation on branch A can use master as its parent, while a simulation on branch B can use branch A as its parent, creating a chain: master → A → B.The workflow automatically validates parent branch references to ensure consistency. When executing a simulation on an existing branch, the system verifies that the parent branch matches other completed simulations on that branch. If a mismatch is detected, the parent branch is corrected automatically.Edge cases are handled gracefully. Attempting to create a branch with a non-existent parent returns a failure status instead of throwing an exception. Child branches remain intact when their parent branch is deleted, preserving the simulation data.Spring Boot Starter
Atoti What-If now provides a Spring Boot Starter that auto-configures all necessary beans. This simplifies integration by eliminating the need for manual bean definitions.The starter automatically creates:DatabaseSimulationEngineandIUniqueIdGeneratorISimulationPersistenceManager(whenIWhatIfPersistencePropertiesbean is present)IDatabaseSimulationsSecurityManager(based on security configuration)IDatabaseSimulationsWorkflowDatabaseSimulationsRestService(in web application contexts)- Distribution beans (when distribution is enabled)
atoti.what-if.enable to false. Configuration is managed through properties with the atoti.what-if prefix. See Configuration reference for details.Breaking changes
Removed deprecated classes and methods
The following previously deprecated items have been removed:DatabaseSimulationPersistenceManager— useHibernateSimulationPersistenceManager- Inner exception classes in
DatabaseSimulationsRestService— use standalone classes incom.activeviam.tools.whatif.rest RestDistributedDatabaseServiceconstructors withdistributedPivotparameterRestDistributedDatabaseService.isConsistentStatus()method