Public API and backwards compatibility
Public API scope
The Public API of the Flowable Work and Orchestrate products is clearly defined in general, but has some exceptions. To start, the REST API of Flowable is considered Public API. In addition, on a Java API level all Java interfaces and classes in a org.flowable.*.api.* package are considered Public API. The same is true for the com.flowable.*.api.* packages. Due to legacy reasons and that backwards compatibility was considered very important the following packages are also considered Public API, which don't match the above mentioned naming patterns:
- org.flowable.engine.*Service, like org.flowable.engine.RuntimeService and org.flowable.engine.HistoryService.
This does not include the Java classes located in com.flowable.*.rest..api.* and org.flowable.*.rest..api.* - those are considered a public API only through REST.
Backwards compatibility
For the REST API and Java interfaces and classes that are part of the Public API the goal is to keep full backwards compatibility between major releases. When a backward incompatible change to an existing REST API endpoint or a Public API Java interface or class is needed, first the old REST service or Java method is deprecated. The next major release after a REST service or Java method was deprecated, the functionality can be fully removed. When a change is made to a Public API REST service or Java method, this is mentioned in the release notes.