Stream Management vs. Sequential Data Store
- Last UpdatedAug 07, 2026
- 5 minute read
The Stream Management service in CONNECT (also called referred to as "stream storage") is the evolution of the Sequential Data Store in CONNECT data services. Both services provide the same core capability: storing and querying time-series data organized into streams, types, and stream views. This document describes the differences between the Sequential Data Store (SDS) in CONNECT data services and Stream Management in CONNECT. It is intended for customers who are familiar with CONNECT data services and want to understand what has changed.
Updated capabilities in CONNECT
CONNECT updates several existing Stream Management capabilities from CONNECT data services.
Transform endpoint split into multiple endpoints
For transform-based data reads, request design has changed from one shared endpoint with many parameter combinations in CONNECT data services to multiple operation-specific endpoints with simpler parameters in CONNECT. In CONNECT data services, transform reads were routed through GET /Data/Transform, and clients selected behavior by combining query parameters (for example, index, filter, or startIndex and endIndex). In CONNECT, each read pattern has its own endpoint, so the path identifies the operation and the query parameters are narrower and easier to understand.
|
Operation |
CONNECT data services |
CONNECT |
|---|---|---|
|
Single interpolated value |
GET /Data/Transform?index= |
GET /Data/Transform/Interpolated/Indexed?index= |
|
Interval interpolated values |
GET /Data/Transform?startIndex=...&endIndex=...&count= |
GET /Data/Transform/Interpolated/Interval?... |
|
Filtered values |
GET /Data/Transform?filter= |
GET /Data/Transform/Filtered?filter= |
|
Distinct value |
GET /Data/Transform?index=...&searchMode= |
GET /Data/Transform/Distinct?... |
|
Window values |
GET /Data/Transform?startIndex=...&endIndex= |
GET /Data/Transform/Window?... |
|
Range values |
GET /Data/Transform?startIndex=...&count= |
GET /Data/Transform/Range?... |
Enum values
For enum values, SDS object representation behavior has changed from numeric values in CONNECT data services to string names in CONNECT. In CONNECT data services, enum values in SDS object payloads were commonly represented numerically. In CONNECT, enum values in SDS object request and response bodies (for example, for types, streams, and stream views) use string names. For stream data, user-defined enum values remain integer-based for compatibility.
This change improves readability and removes the need for client-side enum lookup tables for most SDS object responses.
Example response change (SDS object response):
// CONNECT data services style
{
"interpolationMode": 2
}
// CONNECT style
{
"interpolationMode": "Continuous"
}
Example stream data compatibility (user-defined enum values remain numeric):
{
"eventType": 1
}
Default extrapolation mode
For default extrapolation mode, behavior has changed from All in CONNECT data services to Forward in CONNECT when extrapolation mode is not explicitly set.
This change can affect boundary behavior in reads and summaries for streams or types that rely on defaults. To avoid migration surprises, set extrapolation mode explicitly in stream or type definitions where exact behavior matters.
Summary endpoints: Default results for empty intervals
For summary endpoints (endpoints with /Summaries in the path that return interval-based summary results instead of raw event-by-event data), emptyIntervalMode default behavior has changed from BoundaryInterpolation in CONNECT data services to NaN in CONNECT.
In CONNECT data services, the default of emptyIntervalMode filled empty intervals by interpolating from boundary values. In CONNECT, the default is now NaN, which returns NaN (or null for non-numeric types) for empty intervals. A new Previous option is also available, which carries the last known value forward into empty intervals
This change means applications may see different results from the same summary or interval query even when the request is unchanged. Client code, charts, and analytics that previously assumed empty intervals would be filled automatically may now need to handle NaN or null values explicitly. In practice, this makes gaps in the data more visible by default, but it can also require updates to downstream logic such as chart rendering, aggregation, filtering, or null handling.
|
emptyIntervalMode value |
Description |
Available in |
|---|---|---|
|
BoundaryInterpolation |
Interpolates from boundary values (default in CONNECT data services) |
Both |
|
NaN |
Returns NaN/null for empty intervals (default in CONNECT) |
Both |
|
Previous |
Carries the last known non-empty value forward |
CONNECT only |
Interpolation and extrapolation overrides for summaries
For summary overrides, interpolation and extrapolation behavior has changed from relying on stored stream and type settings in CONNECT data services to allowing per-request overrides in CONNECT. In CONNECT data services, interpolation and extrapolation behavior is primarily driven by stored stream or type configuration. In CONNECT, summary calculations support per-request overrides for interpolation mode and extrapolation mode, allowing interval-boundary behavior changes without modifying stream or type configuration.
Interval boundaries mode
For interval boundaries mode, summary boundary handling behavior has changed from limited request-level control in CONNECT data services to explicit include and exclude control in CONNECT. In CONNECT data services, boundary inclusion behavior is less explicitly configurable at request level. In CONNECT, interval boundaries mode lets you control whether interval boundary values are included or excluded from summary calculations.
Typed query options
For typed query options, query construction behavior has changed from mostly manual query strings in CONNECT data services to typed options objects in CONNECT. In CONNECT data services, clients typically build query strings directly. In CONNECT, strongly typed query options objects can be used for programmatic construction of read requests. Instead of building query strings manually, you can use types such as SdsWindowQueryOptions, SdsRangeQueryOptions, SdsFilterQueryOptions, SdsIntervalQueryOptions, SdsInterpolatedIntervalQueryOptions, and SdsTimeIntervalQueryOptions.
Tag query syntax
For stream tag query syntax, search query behavior has changed from using tags: in CONNECT data services to using tag: in CONNECT.
In CONNECT data services:
GET /Streams?query="tags:tag1"
In CONNECT:
GET /Streams?query="tag:tag1"
This change is small but high impact for search filters. Queries that still use tags: should be updated to tag:.
New capabilities in CONNECT
CONNECT introduces several new Stream Management capabilities and enhancements that weren't available in CONNECT data services.
Expanded bulk operations
For bulk operations, CONNECT significantly expands the number of multi-stream read patterns that can be handled in a single request. Bulk routes now include operations for first values, last values, window values, range values, summaries, sampled values, and time summaries across multiple streams.
In CONNECT data services, bulk support was focused more narrowly on joins and merges. In CONNECT, those earlier bulk patterns are joined by a broader set of multi-stream read endpoints.
|
Bulk operation |
CONNECT data services |
CONNECT |
|---|---|---|
|
Joins |
GET/POST /Tenants/{tenantId}/Namespaces/{namespaceId}/Bulk/Streams/Data/Joins |
GET/POST /api/v2/Bulk/Streams/Data/Joins |
|
Merges |
GET/POST /Tenants/{tenantId}/Namespaces/{namespaceId}/Bulk/Streams/Data/Merges |
na |
|
First values |
Not available |
POST /api/v2-preview2/Bulk/Streams/Data/First |
|
Last values |
POST /api/v2-preview2/Bulk/Streams/Data/Last |
|
|
Window values |
POST /api/v2-preview2/Bulk/Streams/Data/Window |
|
|
Range values |
POST /api/v2-preview2/Bulk/Streams/Data/Range |
|
|
Distinct values |
POST /api/v2-preview2/Bulk/Streams/Data/Distinct |
|
|
Filtered values |
POST /api/v2-preview2/Bulk/Streams/Data/Filtered |
|
|
Summaries |
POST /api/v2-preview2/Bulk/Streams/Data/Summaries |
|
|
Time summaries |
POST /api/v2-preview2/Bulk/Streams/Data/Time/Summaries |
|
|
Sampled values |
POST /api/v2-preview2/Bulk/Streams/Data/Sampled |
|
|
Interpolated (indexed) |
POST /api/v2-preview2/Bulk/Streams/Data/Interpolated/Indexed |
|
|
Interpolated (interval) |
POST /api/v2-preview2/Bulk/Streams/Data/Interpolated/Interval |
Time-based summaries
CONNECT introduces time-based summaries.
In CONNECT data services, summary operations were based on interval counts and did not include calendar-aligned time summaries. In CONNECT, calendar-based summary intervals are available through the time-summary endpoint GET /api/v2/Streams/{streamId}/Data/Time/Summaries. This endpoint allows summary data aligned to calendar units such as minutes, hours, days, months, or years, with optional time zone support and interval multipliers. This is in addition to existing count-based interval summaries through GET /api/v2/Streams/{streamId}/Data/Summaries.