Top 10 things which have an impact on overall performance of Appian?

Hi All,

There can be many reasons which impact the performance of any application/system/product.

Here I am looking for top 10 things which impact the overall performance of Appian in terms of CPU utilization, memory usage, process engine/analytics engine load etc. and should be considered rite from the initial development phase till production.

Any pointers will help the development community:) In the meantime, I will continue with my research as well and post as and when I have any information.


Kindly suggest.




  Discussion posts and replies are publicly visible

  • There can be many reasons behind performance degrade in Appian, listing out few of them below

    1. Improper use of load() and with() in interface
    2. Creating unused variables in process
    3. Having various logics in interface such as many if-else conditions etc..
    4. Avoid using huge nodes with in a single process
    5. Make the sub process as asynchronous if the parent process doesn't need the output of sub process to proceed further.

    6. Follow the best practices
    7. If you are trying to show multiple fields based on a particular conditions individually, try pushing them into a single section and show-hide them based on condition
    8. Try reusing the rules rather than creating a new one, so that you can avoid creating multiple objects
    9. Use proper annotations for xsd while creating CDT


    And there are many more.
    The best way to take care of a these all, is you follow the best practices.

    Hope this will help you.
  • I agree with aloks176.

    And also make sure while querying the huge data,don't pass pagingInfo(1,-1).It will impact the memory consumption and degrades the performance.
    Design a batch process while handling the huge data.
    Or implement store procedure to update the huge data entries or making new data entries.

    Reduce the usage of multiple node in the process model.Try to use lesser nodes (Make use of input/output variables efficiently).

    Make use of apply/apply components while handling huge data instead going for a looped structure in the process.

    Run Appian health check often to know more about your environment issues.

    Hope this will help you.
  • Also, in processes mo​del try to avoid MNI instead if there is any possibility of Loop functions like apply() then go for that, if at all no possibility rather than MNI then only go for MNI

    Also if you have any saveInto logic, and if you can save these values from form submit button then better go for that instead of having a script task node in process model.
  • I agree with aloks176 and ashman.
    After getting data from DB instead of calculting in SAIL rules OR forming some adhoc CDT's ,we can create view at db level and pull the data.
    Archive process as much as possible if we are not used any process data.
    Call query rule and query entity whenever page loads[Within load()] not in with function , If you call within with() function perfomance will be slow.
  • Adding on to all of the good suggestions above, the complexity and frequency of database calls can have a significant impact on performance.