Best practices for configuring scalable web apps

Many agencies supporting public health and emergency response, along with other authoritative sources across the globe, share information about breaking news and major events through maps, apps, and dashboards created in ArcGIS Online. When these web applications are shared publicly, they often experience high demand and generate a large amount of web traffic. Demand may be even higher when the application is shared through news feeds, on social media, and through other media websites and channels. It's important that your publicly shared applications perform well in high-demand, high-volume situations when accessed anywhere in the world.

This topic provides best practices to optimize scalability and display performance for publicly shared ArcGIS Online web applications. In addition, the following section briefly explains the primary mechanisms in ArcGIS Online—feature tiles and response caching—that support web app scalability and performance.

Feature tiles and response caching

ArcGIS Online is built on a reliable, scalable infrastructure that supports a massive amount of web traffic. Hosted feature layers and hosted feature layer views provide data visualizations for the web maps and apps that share information publicly. When users interact with an ArcGIS Online web application, the app uses feature layer queries to request data that is then displayed as features on the map. For layers with a large number of features, ArcGIS Online uses feature tiles to deliver the data in multiple smaller query responses. Using a mechanism called response caching, feature tiles are cached once and shared by all users requesting the same information. This allows the app to display the latest data quickly without consuming additional resources from the ArcGIS Online organization hosting the content.

When configuring a publicly shared app in ArcGIS Online, applying the best practices outlined in the following sections will ensure that the app takes advantage of feature tiles and response caching, making it both scalable and efficient anywhere in the world.

Best practices to optimize scalability

The following best practices are recommended to optimize the scalability of publicly shared high-demand web applications:

  • Use hosted feature layer views, which allow you to do the following:
    • Keep public data read-only, while simultaneously allowing for authenticated live edits.
    • Use multiple visualizations of the same data to serve multiple audiences or stakeholders.
    • Swap the source layer, ensuring smooth transitions during major data updates.
  • Ensure editing is disabled for all publicly shared hosted feature layers and hosted feature layer views.
  • For all publicly shared hosted feature layers and hosted feature layer views, set the maximum cache age to align with the frequency at which the data is updated. If you update the data infrequently, make the maximum cache age longer than the default of 30 seconds. You should choose the longest duration you can to conserve your organization's feature data store resources.
  • When setting up view definitions and filters, do not use dynamic or relative date conditions, such as current time, in the last five minutes, today, yesterday, or tomorrow. Instead, use time references stored as attributes in the data.
    Note:

    The Infographic widget, Query widget, and Info Summary widget in ArcGIS Web AppBuilder use dynamic extent and are not recommended for high-demand publicly shared apps.

    Before configuring a dashboard, review the scalability best practices for ArcGIS Dashboards.

Best practices to optimize display performance

In addition to best practices that optimize scalability, the following best practices are recommended to optimize the display performance of publicly shared high-demand web applications:

  • For each hosted feature layer containing line and polygon features, enable the option to optimize layer drawing on the Settings tab of the layer's item page to improve query time.
  • Create an attribute index for any fields being used as a filter. Although a small amount of additional feature data storage is required to store an attribute index, it will increase the speed of your attribute-driven filters. If your organization would prefer a fixed cost for feature data storage instead of using credits, consider Premium Feature Data Store.
  • Set an appropriate scale range for each layer to minimize unnecessary layer drawing time.

Resources

Use the following resources to learn more: