How can I optimize the performance of my Appian application?

How can I optimize the performance of my Appian application?

  Discussion posts and replies are publicly visible

Parents Reply Children
  • 0
    Certified Associate Developer
    in reply to Shubham Aware

    1. Architectural Practices
    Leveraging Data Fabric & Synced Records: Using Record Types with data sync enabled is critical. It provides up to 10x faster performance for complex queries on large datasets (up to 10 million rows) by caching data in-memory.
    Modular Application Structure (Loosely Coupled Components): Breaking down large applications into smaller, reusable components, interfaces, and expression rules. This approach isolates changes, allowing teams to update parts of the system without risk to the whole.
    Separation of Data from Processes: Allowing the database to handle data-intensive tasks (sorting, filtering, aggregation) instead of performing these actions in process nodes or interfaces.
    Asynchronous Design for Responsiveness: Using a!asyncVariable() or loadDataAsync for loading data-heavy dashboards, allowing the UI to render instantly while background data fetches.

    2. Development & Performance Practices
    Optimized Queries (Removing SELECT *): Explicitly selecting only required fields using a!queryRecordType() or a!queryEntity() reduces payload size and significantly improves UI load times.
    Avoiding Excessive Chaining: Limiting activity chaining to only necessary user-interaction steps and limit it to 30.Chaining too many nodes can overwhelm system resources and make debugging difficult.
    Proactive Performance Testing: Using Appian’s Performance View and Health Check tools during development, rather than as a final check.
    Interface Optimization: Using a!refreshVariables() to cache data and controlling evaluation with showWhen to prevent unnecessary calculations on screen load.
    Leveraging Process Alternatives: For high-volume transaction processes, using "headless" patterns (processes without user interfaces) and asynchronous subprocesses prevents engine overload.

    3. Governance & DevOps
    Adopting DevOps Pipelines: Utilizing Git repositories for version control and Appian’s native Compare and Deploy capabilities for consistent, automated deployments across environments.
    Standardized Naming Conventions: Prefixing objects (e.g., APP_NAME_), using CamelCase, and removing unused rules before deployment to maintain a clean, readable, and manageable environment.
    Using Application-Specific Groups: Never using "All Users" or individual users for object security; assigning permissions to application-specific groups to ease governance and security management