Using Json string instead of CDT in process model (long running)

Currently in our workflow, the processes are very long lived (approximately 300,000 active at a time). So, any change we make in the CDT won't get affected on the older processes. Which makes our job a little complex to write logic which is always backward compatible and sometimes we have to make compromise saying that the functionality will work for a new processes only.

Now we are on our way of redesigning our original process model that handles the workflow. Although we are leaning towards short lived processes, there are chances that few processes stays in the memory for a longer period of time.

So, mainly to avoid the CDT backward compatibility (that I mentioned above), we thought of using the JSON string wherever we were using the CDT in the process model. And we can always deJsonify that and get a dictionary using a!fromJson function in the interface/expression. And because the JSON is basically a text, if we change the structure (mostly adding/removing/updating an attribute), the process model won't require any changes.

Is above a good practice? Or using CDT is the preferred way to go. Sorry if there is already a discussion on it, in that case please point me to that thread.

Thanks!

  Discussion posts and replies are publicly visible

Parents
  • Thank you and for the valuable feedback.

    My initial thought was that because JSON is going to be saved as Text type, if the structure of the data changes the process variable won't need any modification. The only place I will have to change is in the Interface/Expression Rule, which will work on the older processes. But I see the points laid out and feel that the CDTs are the better way to move ahead.

    Basically, we currently have a process-centric workflow model which causes the long lived processes in the environment. And now we are moving towards record-centric approach to avoid the long lived processes.

    Again, thank you all for the suggestions and pointing us to the correct direction.
Reply
  • Thank you and for the valuable feedback.

    My initial thought was that because JSON is going to be saved as Text type, if the structure of the data changes the process variable won't need any modification. The only place I will have to change is in the Interface/Expression Rule, which will work on the older processes. But I see the points laid out and feel that the CDTs are the better way to move ahead.

    Basically, we currently have a process-centric workflow model which causes the long lived processes in the environment. And now we are moving towards record-centric approach to avoid the long lived processes.

    Again, thank you all for the suggestions and pointing us to the correct direction.
Children
No Data