Valid Datasource Configuration?

Hello,

I wanted to double check with others to see if my datasource configuration is correct for my use case. I am using two MySQL databases, the first is used for storage of my business data while the second is used for my embedded Camunda process engine. I want to keep the first database as the primary to be used for my other methods. I have this following current configuration based off of what I read here: Process Engine Configuration | docs.camunda.org

@Configuration
@Import(SpringProcessEngineServicesConfiguration.class)
public class WorkflowEngineConfig {

    @Value("${spring.datasource.url}")
    private String dbSourceUrl;

    @Value("${spring.datasource.username}")
    private String dbUserName;

    @Value("${spring.datasource.password}")
    private String dbPassword;

    @Value("${spring.datasource.driver-class-name}")
    private String dbDriverClassName;

    @Bean
    @Primary
    @ConfigurationProperties(prefix="spring.datasource")
    public DataSource primaryDataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setUrl(dbSourceUrl);
        dataSource.setUsername(dbUserName);
        dataSource.setPassword(dbPassword);
        dataSource.setDriverClassName(dbDriverClassName);
        return dataSource;
    }

    @Bean
    @ConfigurationProperties(prefix="workflow.datasource")
    public DataSource workflowDataSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean
    public PlatformTransactionManager transactionManager() {
        return new DataSourceTransactionManager(workflowDataSource());
    }

    @Bean
    public SpringProcessEngineConfiguration processEngineConfiguration(
            @Value("classpath*:*.bpmn") Resource[] deploymentResources) {
        SpringProcessEngineConfiguration config = new SpringProcessEngineConfiguration();
        config.setProcessEngineName("workflow-engine");
        config.setDataSource(workflowDataSource());
        config.setTransactionManager(transactionManager());
        config.setDatabaseSchemaUpdate("true");
        config.setJobExecutorActivate(true);
        config.setDeploymentResources(deploymentResources);
        config.setHistory("full");
        return config;
    }

    @Bean
    public ProcessEngineFactoryBean engineFactory(SpringProcessEngineConfiguration engineConfiguration) {
        ProcessEngineFactoryBean factoryBean = new ProcessEngineFactoryBean();
        factoryBean.setProcessEngineConfiguration(engineConfiguration);
        return factoryBean;
    }

    @Bean
    public ProcessEngine processEngine(ProcessEngineFactoryBean factoryBean) throws Exception {
        return factoryBean.getObject();
    }
}

I wanted to make sure that with this configuration, I’m able to save to both databases properly as I work on adding new workflows to my Java application.

Thanks!