---
title: Selecting a deployment pattern for real-time data streaming and analytics systems
source_url: "https://architecture.arcgis.com/en/framework/system-patterns/real-time-data-streaming-and-analytics/selecting-a-deployment-pattern.html"
md_url: "https://architecture.arcgis.com/en/framework/system-patterns/real-time-data-streaming-and-analytics/selecting-a-deployment-pattern.md"
---
# Selecting a deployment pattern for real-time data streaming and analytics systems

Real-time data streaming and analytics systems are typically deployed using one of two deployment patterns:

- [SaaS](/en/framework/system-patterns/real-time-data-streaming-and-analytics/deployment-patterns/as-saas.md)
- [Windows/Linux](/en/framework/system-patterns/real-time-data-streaming-and-analytics/deployment-patterns/as-server-software.md)

Selecting a [deployment pattern](/en/framework/system-patterns/anatomy-of-a-system-pattern.md) is one of the most important decisions to make in designing a GIS system for your organization.

Perhaps the most critical factor in this decision will be aligning with your organization's IT principles, guidelines, and comfort-level in supporting different deployment approaches. For example, some organizations may prefer to standardize on SaaS-based systems and solutions. Other organizations may prefer Windows or Linux-based deployment patterns.

> [!NOTE]
> **Note**
> The capabilities as well as the considerations differ between deployment patterns. Review the comparisons below, along with the deployment pattern pages for additional information.
For general information and considerations around these deployment approaches see the [ArcGIS products and deployment options](/en/overview/introduction-to-arcgis/arcgis-products-and-deployment-options.md) page of the ArcGIS overview.


# Capability comparison

In addition to aligning with your IT principles, guidelines, and comfort-level, it's also important to consider the capabilities of each deployment pattern in your decision-making process. The capabilities of a real-time data streaming and analytics system differ between deployment patterns. The following matrix compares the specific capabilities supported by each of the deployment patterns. 

Capabilities used in a self-service mapping, analysis, and sharing system, but typically provided by other systems, such as basemaps, geocoding, and other location services provided by a [location services system](/en/framework/system-patterns/location-services/overview.md) are not listed below. Learn more about [related system patterns](#related-system-patterns).


| **Capability** | **SaaS** | **Windows/Linux** |
| :------------------------------------- | :------: | :---------------: |
| [Feed ingest](overview.md#feed-ingest "Connects the system to external sources of real-time, observational data")[^1] | ✓ | ✓ |
| [Data ingest](overview.md#data-ingest "Enables data to be loaded into the system for batch analysis and processing") | ✓ | ◐ |
| [Spatial joins and relationships](overview.md#spatial-joins-relationships "Combine rows from two datasets based on a spatial relationship") | ✓ | ✓ |
| [Pattern analysis](overview.md#pattern-analysis "Identify spatial and temporal patterns in data") | ✓ | ◐ |
| [Proximity analysis](overview.md#proximity-analysis "Look at the proximity of spatial data to other spatial data") | ✓ | ✓ |
| [Summarization analysis](overview.md#summarization-analysis "Aggregate or summarize data into higher order data structures") | ✓ | |
| [Track analysis](overview.md#track-analysis "Analyze time-enabled points correlated to moving objects") | ✓ | ◐ |
| [Geofence analysis](overview.md#geofence-analysis "Analyze moving objects and tracks in relation to areas of interest") | ✓ | ✓ |
| [Data management](overview.md#data-management "Operate on geometries and other fields in real-time feeds and big data") | ✓ | ✓ |
| [Custom input connectors](overview.md#custom-input-connectors "Develop new input connectors using code") | | ✓ |
| [Custom analysis tools](overview.md#custom-analysis-tools "Develop new analysis tools using code") | | ✓ |
| [Custom output connectors](overview.md#custom-output-connectors "Develop new output connectors using code") | | ✓ |
| [Mapping and visualization](overview.md#mapping-visualization "Uncover visual patterns, trends, and relationships in data") | ✓ | ✓ |
| [Data publishing and hosting](overview.md#data-publishing-hosting "Securely publish, store, manage, and access data as a service") | ✓ | ✓ |
| [Feed publishing and hosting](overview.md#feed-publishing-hosting "Publish and host new real-time feeds as stream services/layers") | ✓ | ✓ |
| [Send and store messages](overview.md#send-store-message "Send and store processed feed data (messages) to external systems")[^2] | ✓ | ✓ |
| [Sharing](overview.md#sharing "Share analysis results with others")[^3] | ✓ | ✓ |

✓_Full support_
◐_Partial support_

* This line is required for footnotes in order for them to appear in the page as opposed to the bottom of the page. 


[^1]: Supported input connectors (feed types) differ between deployment patterns
[^2]: Supported output connectors differ between deployment patterns
[^3]: Sharing capabilities typically provided by another system pattern


See the real-time data streaming and analytics [system capabilities](overview.md#capabilities) for more information on each row listed above. Additionally, each of the cells above is described in more detail in the real-time data streaming and analytics system deployment pattern pages.

_The capabilities represented above reflect those available as of July, 2026._

# General considerations

The considerations below aim to help align your organization's business and IT needs with the appropriate real-time data streaming and analytics system deployment pattern. The information presented here is not meant to be exhaustive, but rather highlights key considerations for designing and implementing real-time data streaming and analytics systems.

- Scalability, reliability, service level agreements (SLA), security, and the balance of responsibility between your organization and Esri tend to be major factors in selecting a deployment pattern. See the [reliability](/en/framework/architecture-pillars/reliability/overview.md), [performance and scalability](/en/framework/architecture-pillars/performance-and-scalability/overview.md), and [security](/en/framework/architecture-pillars/security/overview.md) pillars for more information.
- The [SaaS](/en/framework/system-patterns/real-time-data-streaming-and-analytics/deployment-patterns/as-saas.md) deployment pattern using [ArcGIS Online](https://www.esri.com/en-us/arcgis/products/arcgis-online/overview) and [ArcGIS Velocity](https://www.esri.com/en-us/arcgis/products/arcgis-velocity/overview) features the quickest time to market. 
- The input types supported in the SaaS and [Windows/Linux](https://architecture.arcgis.com/en/framework/system-patterns/real-time-data-streaming-and-analytics/deployment-patterns/as-server-software.md) deployment patterns are largely consistent. In both deployment patterns, ArcGIS Velocity supports a common set of web and messaging, ArcGIS, cloud, and data provider-based input types. 
- The SaaS and Windows/Linux deployment patterns, powered by ArcGIS Velocity, can be extended with the gRPC feed type to support custom ingestion in the development language of your choice. Learn more about [extending real-time data ingestion](https://community.esri.com/t5/arcgis-velocity-blog/arcgis-velocity-extending-real-time-data-ingestion/ba-p/1122182) using the gRPC feed type. 
- The use of big data analytics in this system pattern differs between deployment patterns. The SaaS deployment pattern includes [big data analysis](https://doc.arcgis.com/en/iot/analyze/perform-big-data-analysis.htm) capabilities as part of the system as well as the ability to [ingest historical data](hhttps://doc.esri.com/en/arcgis-velocity/latest/ingest/ingest-historical-data.md) external to the system. The Windows/Linux deployment pattern provides the ability to store historical observations in an [ArcGIS-managed](/en/overview/introduction-to-arcgis/arcgis-architecture/data.md#storage-considerations) spatiotemporal [big data store](https://enterprise.arcgis.com/en/geoevent/latest/administer/managing-big-data-stores.htm); however, batch analysis of this data is typically performed by a [big data analytics system](/en/framework/system-patterns/big-data-analytics/overview.md), or a system [composed](/en/framework/system-patterns/using-system-patterns.md#working-with-multiple-system-patterns) from both the real-time data streaming and analytics and big data analytics system patterns. The spatiotemporal big data store is an optional add-on for the Windows/Linux deployment. 
- Sharing real-time feeds and big data analytic results with a broad base of users is typically accomplished using either the [self-service mapping, analysis, and sharing system pattern](/en/framework/system-patterns/self-service-mapping-and-sharing/overview.md) or the [enterprise application hosting and management system pattern](/en/framework/system-patterns/enterprise-app-hosting-and-management/overview.md). It is common to [combine](/en/framework/system-patterns/using-system-patterns.md#working-with-multiple-system-patterns) one or both with the real-time data streaming and analytics system pattern.

Selecting a deployment pattern is one of the most important decisions to make in designing a GIS system for your organization. However, it is not the only one. There are many additional factors to take into consideration when designing your system, including areas like security, reliability, and integration. As such, consider the information provided here is not exhaustive. Review the architecture [practices](/en/framework/architecture-practices/introduction.md) and [pillars](/en/framework/architecture-practices/introduction.md#architecture-pillars) of the ArcGIS Well-Architected Framework, as well as [product documentation](https://doc.arcgis.com/en/), in detail as part of your design process.
