Blog/Data Engineering/Introducing a Simpler Path from Data Producers to Snowflake: Elastic Channels Support Up to 20 GB/s
Sep 16, 2026/6 min readData Engineering

Introducing a Simpler Path from Data Producers to Snowflake: Elastic Channels Support Up to 20 GB/s

Today, we're announcing the general availability of Elastic Channels for Snowpipe Streaming, making it simpler to stream data directly from applications, devices and services into Snowflake tables or Snowflake-managed Apache Iceberg™ tables. Teams can remove ingestion systems that exist only to land data, simplifying operations, reducing latency and potentially lowering total cost of ownership.

For organizations running connected products, industrial systems and digital applications, that simplicity matters. Devices continuously send telemetry, applications generate user events, and services scale independently. Making those signals available for analytics and AI can require an ingestion system nearly as complex as the applications producing them.

Elastic Channels simplify that work: choose a target table, append rows or batches of rows, and receive a durable acknowledgment when Snowflake has durably persisted the data but prior to the data being available to query in the table. The SDK automatically batches appends and retries transient failures, while Snowflake manages ingestion scaling and channel lifecycle. This reduces the need for a separate message bus or staging pipeline solely to land data in Snowflake.

That simpler experience also supports demanding workloads. At GA, Elastic Channels support up to 20 GB/s per table. Data can become available to query in as little as 5 seconds, depending on the workload. In internal testing, we pushed throughput further, reaching up to 40 GB/s into a single table. Our next post will unpack those benchmark results and how we measured them; a third, engineering-focused post will explore the architecture and design behind Elastic Channels.

To learn more or get started with Elastic Channels, visit our Elastic Channels documentation.

Performance metrics diagram showing Snowflake throughput of 40 GB/s and query latency as low as 5 seconds
Figure 1: Throughput performance and limits of Elastic Channels.

From customer challenge to a direct data path

Snowflake developed Elastic Channels alongside customers facing two distinct streaming challenges. Yuvital, which provides a rewards and incentives application framework for businesses, has been testing Elastic Channels to simplify its pipelines and stream user analytics and clickstream events directly into Snowflake. HighByte, a leader in Industrial DataOps software, needed a simpler way to support thousands of connections and stream industrial and IoT data directly into Snowflake with near-real-time availability. These design partners illustrate the need for simpler ingestion across both digital applications and industrial systems.

Elastic Channels simplify ingestion by reducing the need on multiple systems that exist only to move data into a table. If you already use a message bus like Kafka for multiple consumers, shared replay or retention, you can keep it and stream a copy into Snowflake using our Named Channels.

With Elastic Channels, customers create a target table, connect producers through an SDK or REST and start appending rows. Snowflake handles the server-side ingest path as fleets and traffic grow.

Quote Icon

“At Yuvital, we use rewards and incentives to help organizations engage their members and encourage healthier behaviors. We generate a continuous stream of member activity and engagement events that we bring into Snowflake to understand member activity, personalize experiences and inform business decisions. We were using Confluent as the quickest way to land append-only events in Snowflake, but it was way too complex and expensive for such a simple goal. With Elastic Channels, we added just a couple of lines of code and started sending events directly from our Node.js backend, which made it straightforward to expand.”

Yaron Levi
Chief Architect and Co-Founder, Yuvital
Diagram comparing traditional multi-hop data pipeline to Snowpipe Streaming Elastic Channels architecture for Snowflake
Figure 2: Simplify your data pipelines with Elastic Channels.

Simple for producers, durable for the business

Elastic Channels are designed for workloads where many independent producers share a destination:

  • One shared ingest path: Producers write through a single implicit Elastic Channel for the target pipe and table.
  • No producer coordination: Applications do not assign, track or rebalance ingestion channels as fleets and traffic change.
  • Automatic server-side scaling: Snowflake distributes the workload as the number of producers and their traffic change.
  • Durable acknowledgment: A producer receives confirmation after Snowflake has durably persisted the submitted data within the ingestion service.

After receiving the acknowledgment, the producer can release its retained copy: Snowflake has durably persisted the data. Processing and query availability follow; acknowledgment does not mean every row has passed downstream processing. The latency figure above measures ingest-to-query time, not acknowledgment time.

Producers should keep unacknowledged events available for retry. During outages, they can pause intake or, when collection must continue, use an existing outbox or producer-local durable buffer. For crash-safe retention, persist events before accepting responsibility and remove them after acknowledgment. The SDK’s memory buffer is not a persistent spool.

Teams can treat Snowflake as a shared, elastic destination for operational data across a fleet or application estate rather than building coordination logic into every producer.

From continuous data to business outcomes

The same direct-ingestion model applies wherever large numbers of producers generate data continuously:

  • Connected products and IoT: Monitor device and network health across large fleets, shorten the path from telemetry to product intelligence and onboard new producers without allocating channels per device.
  • Industrial operations: Bring machine and factory-floor signals into Snowflake for faster anomaly detection, predictive maintenance and operational optimization.
  • Security and observability: Stream logs, metrics, traces and behavioral events from distributed agents to accelerate threat detection and incident response.
  • Digital applications: Capture clickstream and product events from independently scaling services to support personalization, experimentation and near-real-time customer analytics.
Quote Icon

“HighByte Intelligence Hub helps manufacturers collect and contextualize data from equipment, sensors and industrial systems at the edge and make it usable in Snowflake. With Elastic Channels, customers can increase throughput and simplify management by sending continuous data streams through shared ingest paths, without coordinating channels across individual factories and producers. Durable acknowledgments are especially important for industrial data, where data loss isn’t acceptable, enabling customers to reliably buffer data at the edge and deliver it to Snowflake when connectivity is restored.”

Jeffrey Schroeder
Director of Product Management, HighByte

Flexible semantics without unnecessary complexity

Snowpipe Streaming can provide different streaming capabilities depending on your use case. Elastic Channels provide at-least-once delivery without ordering. Retries or replay can produce duplicates, so use stable event IDs where deduplication matters. Snowpipe Streaming’s existing Named Channels serve workloads that need per-channel ordering and exactly-once delivery. Choose the ingestion model that fits your application’s requirements.

Native to the Snowflake data platform

Data arrives directly in Snowflake, where organizations can apply consistent access controls, governance, transformation, analytics and AI capabilities. Removing transit layers can reduce duplicate copies and shorten the period when operational data sits outside the platform's governance boundary.

Choose the client interface and target table that fit your application:

  • Python, Java and Node.js SDKs: Append events as they arrive. The SDK automatically batches appends using time and size thresholds and retries transient failures. Applications control how much data remains unacknowledged and periodically wait for durability confirmation.
  • REST API: Best for lightweight services, edge applications, serverless functions, webhooks and languages without a dedicated SDK. Direct REST clients manage NDJSON batching and compression. A successful response confirms durable acceptance.
  • Ingestion targets: Snowflake tables and Snowflake-managed Iceberg tables.

Choose a table, append rows or batches of rows and receive durable acknowledgment. The SDK handles transport batching; the code sample below shows a single append and acknowledgment.

Diagram showing three-step process for data ingestion: choosing a Snowflake table, appending rows via SDK or REST, and receiving durable acknowledgement
Figure 3: Simplified developer model.

 

Elastic Channels and durable acknowledgments are generally available in all AWS, GCP and Azure commercial regions.

Elastic Channels can be used at no additional cost. Snowpipe Streaming is billed based on the uncompressed data ingested at 0.0037 credits per GB. See Understand your costs in the Snowpipe Streaming documentation for more details.

Get started with Snowflake CoCo

Get started by asking CoCo to help you build an Elastic Channels pipeline.

Ask CoCo to “help me get started with Snowpipe Streaming Elastic Channels, using the latest documentation https://docs.snowflake.com/en/user-guide/snowpipe-streaming/data-load-snowpipe-streaming-overview”

CoCo can scaffold the Snowflake objects, authentication profile, producer code and verification steps.

This minimal Python example illustrates one append and acknowledgment. Production applications retain unacknowledged events and wait at durability checkpoints rather than after every row:

from datetime import datetime, timezone
from snowflake.ingest.streaming import StreamingIngestClient

client = StreamingIngestClient.from_table(
    client_name="sensor_producer",
    db_name="MY_DATABASE",
    schema_name="MY_SCHEMA",
    table_name="SENSOR_READINGS",
    profile_json="profile.json",
)

channel = client.get_elastic_channel()
ack = channel.append_row_with_wait({
    "DEVICE_ID": 1,
    "READING_TS": datetime.now(timezone.utc),
    "TEMPERATURE": 21.5,
})
ack.result()  # Data has been durably accepted by Snowflake.

You can also:

Create a table, connect a producer, append rows or batches of rows and let Snowflake manage ingestion scaling and channel lifecycle.

Learn more about the author

Chase Thomas

Senior Product Manager
Share this post

Subscribe to our blog newsletter

Get the best, coolest and latest delivered to your inbox each week

Where Data Does More