like slf4j in java, as BPMN is standard, can we make a abstract API for it
like bpmn-java-api
then write concrete implements targeting different implementations like camunda, flowable, activitii etc.
then comes out: bpmn-java-camunda and bpm-java-flowable
while client code only using the abstract API, don’t need to care about the underlying implementations?
Why not? But the devil is in the details. I’ve seen some attempts to get a common API for several technical solutions, but most times the weakest element in the chain drives the biggest effort.
And how likely is it to switch the underlying system, especially when you are bounded to business backend system?
Most times it is easier to reimplement the glue code between the business layer and the process orchestrator (to migrate to Camunda).