camunda / camunda-bpm-platform

Flexible framework for workflow and decision automation with BPMN and DMN. Integration with Quarkus, Spring, Spring Boot, CDI.
https://camunda.com/
Apache License 2.0
4.1k stars 1.55k forks source link

HistoryTimeToLive as ProcessDefinition-Fallback #4354

Closed mixaaaa closed 4 months ago

mixaaaa commented 4 months ago

User Story

As we are writing some spring boot applications based on camunda 7 starting long time before history time to live was mandatory in the processes we just started to set enforce history time to live to false to be able to update and still run processes. Even more in our case the problem is that the TTL is always ProcessDefinition related and not configurable via (for example) spring boot properties. For example in our dev environment we delete process related information after five days but in prod we keep it a year.

So taking a deeper look at the ProcessEngineConfigurationImpl i recognized that there is a default time to live which is already used in many cases but not for process related stuff. So my idea would be to use this history time as second configurable option for history time removal.

Functional Requirements (Required before implementation)

Technical Requirements (Required before implementation)

Limitations of Scope

Hints

I justed forked this project and make some small adjustments which not completely use your styling guidelines. I would revert and correct that and even write tests if you are interested in this feature. If not i will just throw it away ;)

Links

### Pull Requests

Dev2QA handover

psavidis commented 4 months ago

Hello @mixaaaa ,

Thanks a lot for your interest to share with us your work! 👍

Mandatory History Time to Live upon Deployment

We decided to go with making the History Time to Live mandatory upon deployment for backwards compatibility sake and to give our users the possibility to turn it off on demand. This was a conscious decision during the define phase of the feature.

As a result of the above, we cannot consider the suggested behaviour to the product as it would be a decision will plenty of side effects for our users.

For your use case

I hope the above info give you an insight on how to handle your use case. Since this feature can't be considered further, i'm closing this ticket.

Thanks a lot for your interest, Petros

mixaaaa commented 4 months ago

Hey @psavidis,

I not completely agree because this solution completely ignores the aim to configure a time to live via properties. Does not matter if your application runs in Jboss, Spring Boot or whatever.

For example: Based on your environment (dev,prod) your process definition will be deleted after different durations (10 days, 2 years).

For me it would also be an option to make historyTimeToLive as expression. What do you think about that?

Thanks, Uwe