Using Subprocess vs Start Process for synchronous processes

Certified Senior Developer

Hi All,

What is the difference between calling a synchrous process via Subprocess and Start Process smart service nodes? Is it just that the first runs in the same thread / Appian engine and the latter runs in a separate thread / process to balance the workload? I know that Subprocesses are traditionally used in synchronous settings and are especially helpful when the child process is activity chained, but would it ever make sense to use the Start Process node in a synchronous setting? I've only primarily used Start Process nodes for asynchronous processes. 

  Discussion posts and replies are publicly visible

Parents
  • 0
    Certified Lead Developer

    Yes, you're right - Subprocess runs on the same engine/thread while Start Process runs on a separate engine for load balancing. Subprocess is best for synchronous calls when you need activity chaining (users flow seamlessly between parent-child forms) or pass variables by reference. Start Process synchronous mode makes sense when you need the child's output but don't need activity chaining - you get better performance, engine distribution, and autoscale support.
    Use Subprocess for tightly coupled processes, Start Process for loosely coupled ones that still need to return data.

Reply
  • 0
    Certified Lead Developer

    Yes, you're right - Subprocess runs on the same engine/thread while Start Process runs on a separate engine for load balancing. Subprocess is best for synchronous calls when you need activity chaining (users flow seamlessly between parent-child forms) or pass variables by reference. Start Process synchronous mode makes sense when you need the child's output but don't need activity chaining - you get better performance, engine distribution, and autoscale support.
    Use Subprocess for tightly coupled processes, Start Process for loosely coupled ones that still need to return data.

Children