Appian Community and Appian Academy are being upgraded. From July 24–August 3, the Appian Community will be in read-only mode. During this time, the site will be read-only and user registration will be disabled. We apologize for any inconvenience this may cause, but a more secure, stable, and performant Community experience is coming soon!

The new Appian Community launches August 3, followed by Appian Academy on August 7. During the migration, Appian Community Edition, Appian Academy, Documentation, Certifications, Instructor-led Customer Training, Partner Sales Training & Accreditation, and Forum (for Appian Partners and Customers only) will remain available.

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