Activity Chaining

I've been told that ubiquitous activity chaining is a bad practice, but why is this the case? It seems to me that there are applications where activity chaining is necessary end to end, and indeed I've seen such applications function just fine.

Is it a performance concern, or more a contrast with clean code philosophy?

 

Thanks

  Discussion posts and replies are publicly visible

Parents
  • Certified Lead Developer
    For the most part i'm with you on that - and conscientious activity chaining is 100% necessary for a friendly UX within any given process flow. The main reasoning I've heard for not using ALL activity chaining (like, at least allowing chaining to break for asynchronous side-flows where chaining doesn't directly help), is that chained process flows take the highest priority within the execution engine(s) and therefore potentially have negative performance impact on other users if used too much. I've never directly observed this, though.
Reply
  • Certified Lead Developer
    For the most part i'm with you on that - and conscientious activity chaining is 100% necessary for a friendly UX within any given process flow. The main reasoning I've heard for not using ALL activity chaining (like, at least allowing chaining to break for asynchronous side-flows where chaining doesn't directly help), is that chained process flows take the highest priority within the execution engine(s) and therefore potentially have negative performance impact on other users if used too much. I've never directly observed this, though.
Children
  • Certified Senior Developer
    in reply to Mike Schmitt

    Why do we need to break activity chaining if process is asynchronous can you please help me to understand that and I have a question why we use long activity chaining so I am not clear when to use it and when not to use or we canbreak it from between or not

  • Certified Lead Developer
    in reply to jignesht0001

    That is simple. Just do NOT use chaining, except you have a specific need for it. The reason is, that any chained node runs with the highest possible priority in the process execution engines. And this leads to performance issues on the platform.

    Just out of my mind, the situations where your need chaining are:

    - Make the UI refresh only after a specific node in the process

    - Make a web API response wait for a specific node in the process

  • Certified Senior Developer
    in reply to Stefan Helzle

    Okay got the idea about it now thank you so much Stefan.

    One more question In my process there is some subprocess and start process which are async so I heard that we should be having activity chaining for async process so I want to know the main reason for it and as the process is continuously having activity chaining till end so can we break activity chaining where process is async or change the flow can you please tell me about this.

    Thanks in Advance

  • Certified Lead Developer
    in reply to jignesht0001

    I cannot say why others recommend to enable chaining for certain situations, without knowing any details.