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
  • I agree with & :
    This is a creative idea.
    But, I would be concerned that you're inviting too much risk if you do this.

    As you noted, you're coping with a process maintenance consideration.
    That said, one of the last thing you want to do, where maintenance is concerned, is introduce extremely novel, or unorthodox design patterns. It's likely to make maintenance more difficult in the long run.
    If this were some sort of "silver bullet", it would likely have become fashionable a long time ago.

    If you suspect that your CDTs are going to be subject to frequent changes, you're on the right track to move towards short-lived processes. What can you do to eliminate the occurrence of of those few processes that stay alive too long?
Reply
  • I agree with & :
    This is a creative idea.
    But, I would be concerned that you're inviting too much risk if you do this.

    As you noted, you're coping with a process maintenance consideration.
    That said, one of the last thing you want to do, where maintenance is concerned, is introduce extremely novel, or unorthodox design patterns. It's likely to make maintenance more difficult in the long run.
    If this were some sort of "silver bullet", it would likely have become fashionable a long time ago.

    If you suspect that your CDTs are going to be subject to frequent changes, you're on the right track to move towards short-lived processes. What can you do to eliminate the occurrence of of those few processes that stay alive too long?
Children
No Data