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.

  • 0
    Certified Senior Developer
    in reply to Shubham Aware

    Hi ,Are there any real time example where we can apply this . 

  • 0
    Certified Lead Developer
    in reply to swayang

    Synchronous Start Process: Say You want to call a process that fetches customer details from a database/integration and return that data to the calling interface or process. Also it can be used for processes used for document generations. At completion Parent process can get new document generated or use the data from the store procedure call. 

    Synchronous Subprocess: You want to break a complex form into multiple steps using subprocesses, and maintain activity chaining for a seamless user experience. 

  • 0
    Certified Lead Developer
    in reply to swayang

    Subprocess:
    Employee onboarding: HR fills basic info --> subprocess for IT equipment selection (user picks laptop/phone)--> returns to main form to complete setup (activity chained).
    The subprocess is used because the employee needs to actively interact with forms during the equipment selection.

    Start Process :
    Invoice processing: Main process calls "Calculate Tax" process → waits for tax amount → continues with payment processing (no user interaction needed).
    Start Process is used because no user interaction is needed - just the calculated result.

    Use Subprocess when users need to interact across processes. Use Start Process when you just need the output data, not user interaction.

Reply
  • 0
    Certified Lead Developer
    in reply to swayang

    Subprocess:
    Employee onboarding: HR fills basic info --> subprocess for IT equipment selection (user picks laptop/phone)--> returns to main form to complete setup (activity chained).
    The subprocess is used because the employee needs to actively interact with forms during the equipment selection.

    Start Process :
    Invoice processing: Main process calls "Calculate Tax" process → waits for tax amount → continues with payment processing (no user interaction needed).
    Start Process is used because no user interaction is needed - just the calculated result.

    Use Subprocess when users need to interact across processes. Use Start Process when you just need the output data, not user interaction.

Children
No Data