Spring Boot Starter: Java vs. Kotlin

we want to use the Spring Boot Starter and evaluate whether to use Java or Kotlin. There are only few recent posts about Camunda and Kotlin, so I wonder what’s the current community experience with Camunda and Kotlin. There might be hard reasons such as “XY not working”, but also soft reasons such as “poor documentation” or “hard to get community help” etc. We intend to use the Camunda engine as well as the web apps with some custom plugins.

I would be happy if you share your experience, positive or negative!

There is nothing special to fear when working with kotlin and camunda. It is just another java-lib you use from kotlin.
We built a lot of camunda apps and extensions using kotlin so far, just move on.

You might want to have a look at: GitHub - holunda-io/lumberghini: A camunda perpetuum mobile based on the movie office space

we even started a community extension GitHub - camunda-community-hub/kamunda: Camunda extension for Kotlin integration to ease development in Kotlin. to collect extension functions and helpers that make working with the camunda api more “kotlinesque” but that is still empty (meaning: a) feel free to join and b) there are just not that many crucial extensions we have to share to make everything work) )

Camunda works really well with Kotlin. I have created an entire document verification framework using it. The code is super concise and thus much smaller footprint.

1 Like

Sounds great @sourabh_parsekar
If you have public example that you can share i’d be interested in seeing it!

i’ll share one soon…

1 Like

@Niall – I along with @jairamgauns developed below camunda usecase to depict Kotlin use. We took a simple example of Document OCR using OCR Space and then cleaning the output so as to keep Lines and Boundaries for the OCRed text.

OCR Space is free to use and API Key can be obtained from OCR Space API Key which would need to be configured in application.yaml to run the application locally.

Github Camunda-OCR Repository

Below is the flow we created for the usecase -