elsa-core icon indicating copy to clipboard operation
elsa-core copied to clipboard

Allow configuration of LogRecord storage at differents levels

Open jdevillard opened this issue 1 year ago • 1 comments

In the actual implementation, LogRecords are done using differents interfaces :

  • IActivityExecutionStore that store serialized information about activity I/O
  • IWorkflowExecutionLogStore that store serialize information about Workflow and ActivityContext. (maybe with redondant information regarding the IActivityExecutionStore

This can lead to data store that grow rapidly if you done some activity with large transformation (large input/ouput property which will be serialized).

The idea is to give the ability to the user to configure the storage strategy at different level :

  • At App Level -> store : true/false
  • At Workflow Level -> store : default (inherit from App Level) / true (override) / false (override)
  • At Activity Level -> store : default (inherit from Workflow Level) / true (override) / false (override)

For UI Component :

  • App Level : N/A this is configured at Startup
  • Workflow level : dropdown in the property tab of the Workflow
  • Activity level : new tab for persistence information, with a list of the I/O property and a drop down list for each which allow choosing the strategy.

jdevillard avatar Jan 15 '24 20:01 jdevillard

I think this issue can be closed ? 🧐

jdevillard avatar May 14 '24 10:05 jdevillard

@jdevillard Yes, thank you for this awesome contribution! 🙌🏻

sfmskywalker avatar May 27 '24 11:05 sfmskywalker