Process Model

How do you decide between using subprocesses and keeping everything in a single process model?

  Discussion posts and replies are publicly visible

Parents
  • 0
    Certified Senior Developer

    Hi  ,

    Subprocesses are used to modularize reusable or independent logic, improve maintainability, and control execution behavior, while single process models are preferred for simple, tightly coupled flows where separation adds unnecessary complexity.

    Let's break your question in to few points, just to understand quickly:

    1. Reusability (biggest factor) - Breaks individual short processes, which can be reused, (E.g : Email Reminder with custom templates used in different stages)

    2. Separation of concerns ( Keeps logic isolated and maintainable ) - E.g Main process = onboarding, Subprocess = background verification

    3. Complexity control - E.g - Single process with 40 nodes → unreadable, where 5 PMs with few nodes

    4. Independent execution (critical) - use Synchronous - back to back tasks, - Asynchronous, user creation even if related PM fails

    5. Performance & execution behavior - Subprocess (synchronous) -> parent waits , Subprocess (asynchronous) -> runs independently.

    Most developers:

    1. Either dump everything in one process.

    2. Or overuse subprocess everywhere.

    Both are wrong, always go with modular design ensuring all the above mentioned points.

    FYI - Please check documentation to know more about Subprocess - docs.appian.com/.../Sub-Process_Activity.html

Reply
  • 0
    Certified Senior Developer

    Hi  ,

    Subprocesses are used to modularize reusable or independent logic, improve maintainability, and control execution behavior, while single process models are preferred for simple, tightly coupled flows where separation adds unnecessary complexity.

    Let's break your question in to few points, just to understand quickly:

    1. Reusability (biggest factor) - Breaks individual short processes, which can be reused, (E.g : Email Reminder with custom templates used in different stages)

    2. Separation of concerns ( Keeps logic isolated and maintainable ) - E.g Main process = onboarding, Subprocess = background verification

    3. Complexity control - E.g - Single process with 40 nodes → unreadable, where 5 PMs with few nodes

    4. Independent execution (critical) - use Synchronous - back to back tasks, - Asynchronous, user creation even if related PM fails

    5. Performance & execution behavior - Subprocess (synchronous) -> parent waits , Subprocess (asynchronous) -> runs independently.

    Most developers:

    1. Either dump everything in one process.

    2. Or overuse subprocess everywhere.

    Both are wrong, always go with modular design ensuring all the above mentioned points.

    FYI - Please check documentation to know more about Subprocess - docs.appian.com/.../Sub-Process_Activity.html

Children
No Data