Skip to main content
July 8, 2025
Question

Using Subprocess vs Start Process for synchronous processes

  • July 8, 2025
  • 8 replies
  • 0 views

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. 

8 replies

mikes0011
Brainy
July 8, 2025

It's a little tricky to answer as they started off as pretty much completely separate things conceptually, and through a process similar to "convergent evolution", have grown closer together as feature-completeness items have been added to both (notably, "synchronous" mode for the Start Process node and function). 

From an O&M standpoint, the Start Process node is a little immature yet as it continues to be a much bigger pain in the you-know-what to drill down in instances (sometimes impossible and sometimes just harder, depending on the particular node, version, and configuration), and similarly, drilling up from a child instance is sometimes blocked also.  This doesn't affect "happy path" usage as much, but can severely hamper troubleshooting or testing, either during dev or during O&M bugfixing.  Subprocess nodes are relatively trouble-free in this respect.

Other than that, at the moment it seems to be a case-by-case basis sort of thing, where you weigh the pros and cons of each approach given the use case and the potential future process load in question.  I gotta say though, the modern version of Start Process has a much improved setup screen, and I hope they might update the Subprocess setup screen similarly someday.

shubhama926776
July 9, 2025

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.

July 16, 2025

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

harshas2775
July 16, 2025

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. 

james.lepone
July 29, 2025

This thread was well answered, but I would also suggest giving this docs page a read which talks about the differences between the two nodes and when to use them. We typically recommend using start process wherever you can unless there is specific functionality you need that it does not provide (ex. pass by reference, chain into forms in the child process).