We are pleased to announce the first alpha release of Camunda Platform Runtime 7.19. This release features the following improvements:
- Improved engine loading times
- Support for basic authentication in OpenAPI specification
- 3 Bug Fixes
You can Download Camunda for free or run it with Docker.
For a complete list of all improvements, take a look at the release notes. Please also see the list of known issues. If you want to dig in deeper, you can find the source code on GitHub.
Improved engine loading times
Camunda Platform 7 uses Apache MyBatis internally for the persistence of data. Upon startup, the engine reads all database mapping files that define the statements the engine can perform against the underlying database. Those mapping files can contain links to other mappings to allow building helper files and avoid code duplication.
If a referenced mapping file has not been processed yet, MyBatis throws a BuilderException
for the current mapping file. It handles this exception internally by adding the respective file to the end of the list of files to process. That way, all references are resolved eventually. However, mapping files are potentially parsed multiple times. Thus, the order of processing the mapping files can make quite a difference.
Community member Tobias Schäfer discovered that we previously triggered around 2200 such BuilderExceptions
upon every process engine startup. This implied that the order of mapping file processing had not been ideal. He fixed this situation by applying a seemingly small code change, adjusting the mapping file order to avoid reference failures and thus reprocessing of mapping files. This results in faster loading times for every engine startup.
One area that specifically benefits from this is our CI pipeline. Executing more than 15,000 test cases on each run, the time savings are quite relevant. The following table shows how execution times have improved with the adjusted mapping order:
Test module | Old time (sec) | New time (sec) | Improvement |
Overall | 1740 | 1500 | ~14% |
Engine Core | 300 | 220 | ~27% |
Engine Spring | 150 | 90 | ~40% |
Spring Boot Starter Core | 53 | 38 | ~28% |
Spring Boot Starter Webapps | 43 | 32 | ~26% |
Camunda Run Core | 60 | 40 | ~33% |
Overall, this saves a lot of time and resources since those pipelines run multiple times per day in our infrastructure.
Thanks again to Tobias Schäfer for noticing and improving this.
Support for basic authentication in OpenAPI specification
OpenAPI is a standard to formally describe a REST API. We regularly publish an OpenAPI specification for our API. Those specifications can be used to generate clients in many different programming languages that can connect to and consume the API.
Jan Rohwer, from the Camunda community, discovered that those clients did not support authentication, which means it was not possible to connect to secured REST endpoints.
Luckily, the OpenAPI standard supports different security schemes. Jan added basic authentication on a global level to the specification which enables authentication support for all endpoints in any client you generate from the OpenAPI specification.
Note that authentication remains optional and the specification and any client generated from it will still work with an unsecured API.
Thank you Jan Rohwer for your contribution!
Share your thoughts with us!
Your feedback is really important to us, so please download Camunda Platform Runtime 7.19.0-alpha1, try it out, and let us know what you think about it.
You can contact us in the forum, send a tweet to @Camunda, or file a bug in our issue tracker.