DEV Community

Cover image for Snowflake Openflow Limitations: 6 Production Trade-offs
Sourabh Gupta for Estuary

Posted on AI-assisted

Snowflake Openflow Limitations: 6 Production Trade-offs

Short answer: Snowflake Openflow is Snowflake's managed data integration service, built on Apache NiFi. It works in production, and Snowflake ships updates often. Teams running database CDC with it, however, report six recurring trade-offs: runtime sizing that is fixed at creation, costs spread across several billing meters, naming decisions that are hard to change later, strict rules on source schema changes, failures that need deliberate alerting, and a Gen 1 to Gen 2 transition that is only partly complete.

Summary of six Snowflake Openflow production trade-offs and what to do about each

Trade-off What happens Applies to What to do
1. Runtime sizing CDC connectors run on one node, and a runtime's size can't be changed after creation PostgreSQL, SQL Server, Oracle CDC Size for peak volume; test the resize path
2. Several cost meters Runtime compute, warehouse merges, ingestion, and telemetry are billed separately All deployments; BYOC adds a cloud bill Model each meter during the proof of concept
3. Naming decisions Destination names default to source names and are set before the first snapshot Database CDC connectors Set the Destination Schema Pattern up front
4. Schema-change rules Primary key and numeric precision changes stop replication for that table PostgreSQL, SQL Server Plan source DDL; keep a re-snapshot runbook
5. Failure handling Failed tables and retry storms need configured alerts to surface CDC connectors Set up staleness alerts before go-live
6. Gen 1 to Gen 2 transition Gen 2 runtimes are GA; Gen 2 connectors are in preview for two sources All new deployments Check which connectors are Gen 2 today

Each trade-off below states what happens and when it applies, as documented on October 26, 2026. The guide ends with when Openflow is a good fit, a proof-of-concept checklist, and alternatives.

What is Snowflake Openflow?

Snowflake Openflow is Snowflake's data integration service, built on Apache NiFi. It came from Snowflake's acquisition of Datavolo, a company founded by NiFi's original creators. Openflow reached general availability on May 30, 2025, with some connectors still in preview at launch.

Openflow runs in two deployment models:

  • BYOC (bring your own cloud): runtimes run in your own cloud account, and you pay your cloud provider for the infrastructure in addition to Snowflake.
  • Snowflake Deployment: runtimes run on Snowpark Container Services inside your Snowflake account. This option entered preview on September 17, 2025.

Openflow also has two generations. Gen 1 objects are managed mainly through the NiFi canvas. Gen 2 turns deployments, runtimes, and connectors into Snowflake SQL objects with standard role-based access control. Gen 2 deployment and runtime objects became generally available on AWS and Azure on September 8, 2026 and on GCP on September 11. Gen 2 connector configuration, including the setup wizard and the PostgreSQL and MySQL/MariaDB CDC connectors, remains in public preview.

Openflow's packaged connectors focus on database CDC (PostgreSQL, MySQL, SQL Server, Oracle, MongoDB) and SaaS sources such as Salesforce. Most limitations below come from that CDC use case, because it is where most teams evaluate Openflow.

Limitation 1: Runtime sizing is fixed, and CDC connectors don't scale out

Openflow's database CDC connectors run on a single node, and a runtime's size can't be changed after it is created. Capacity planning therefore happens up front, not as volume grows.

What this means in practice: Scaling an Openflow CDC pipeline isn't always as simple as adding more compute nodes. For connectors restricted to single-node runtimes, teams may need to monitor resource usage, choose a larger runtime size, and adjust their deployment as workloads grow. This adds capacity-planning work and can make sudden increases in data volume harder to handle.

Limitation 2: Cost is spread across several meters

Diagram of an Openflow CDC pipeline showing separate charges for runtime compute, ingestion, warehouse, telemetry, control pool, and BYOC cloud costs

An Openflow CDC pipeline is not one line item. Which charges apply depends on the deployment type and how telemetry is configured, but a typical database CDC pipeline incurs several of these:

Cost meter What it charges for Applies to
Openflow runtime compute vCPUs used by runtimes (BYOC), or SPCS compute pool instances billed per second with a 5-minute minimum (Snowflake Deployment) All
Control pool A control pool node that runs alongside active runtimes' compute pools Snowflake Deployment
Warehouse Database CDC connectors need a warehouse for the initial snapshot and incremental merges All CDC connectors
Ingestion Snowpipe or Snowpipe Streaming, based on data volume All
Telemetry Logs and metrics sent to your event table, billed per GB at the rate in Snowflake's Service Consumption Table (source) All
Cloud infrastructure Compute, storage, and networking in your own cloud account BYOC only

Even the smallest Snowflake-hosted setup runs two instances. Snowflake's example of one small runtime active for one hour totals 2 CPU_X64_S instance-hours: one control pool node and one compute node.

Cost tracking has a gap too. The OPENFLOW_USAGE_HISTORY view does not yet contain records for Snowflake Deployments, so teams on that model must assemble costs from other views.

What this means in practice: Teams need to account for more than connector runtime costs when estimating their monthly bill. Increased CDC volume, frequent warehouse merges, and additional infrastructure can all affect total spending. This makes cost forecasting more complicated, especially as new sources and pipelines are added.

Limitation 3: Naming decisions are set early and follow the source

Openflow lets you control destination schema names, but defaults come from the source, and the choice is made before the first snapshot.

What this means in practice: Teams with established Snowflake naming conventions need to plan their destination mappings before starting replication. Changing those mappings later may require additional configuration or migration work, potentially disrupting downstream queries and dashboards.

Limitation 4: Strict rules on schema changes, keys, and sources

Openflow's CDC connectors stop replicating a table when certain source changes happen. These rules are documented, but teams often discover them only in production.

Limitation Connectors affected Source
Primary key changes and changes to numeric precision or scale are not supported; replication stops for the affected table PostgreSQL, SQL Server PostgreSQL docs, SQL Server CDC docs
Tables without a supported identity key replicate INSERTs only; UPDATEs and DELETEs need a key PostgreSQL PostgreSQL docs
Only username and password authentication to the source SQL Server CDC SQL Server CDC docs
CDC unavailable on SQL Server Express and Web editions, including Web edition on AWS RDS SQL Server CDC SQL Server CDC docs
Tables with data beyond Snowflake's type limits are not replicated (out-of-range dates excepted) PostgreSQL PostgreSQL docs

SQL Server also has two separate Openflow connectors, and the choice affects what you capture. The Change Tracking connector polls for changed rows, so multiple updates to one row between polls arrive as a single change. The CDC connector captures every row-level change from the transaction log, but it requires SQL Server Agent and the Standard or Enterprise edition.

In fairness, Openflow handles common changes such as adding and dropping columns, and recent releases improved how failures surface. For example, the SQL Server CDC connector now moves tables to FAILED state on unsupported DDL instead of retrying indefinitely. Fixing a failed table, though, typically means removing it from replication and re-snapshotting it.

What this means in practice: Routine source changes, such as altering a primary key or widening a numeric column, can stop replication for a table. Coordinate DDL changes with the source database team, test them in a staging pipeline first, and keep a documented re-snapshot procedure ready for tables that fail.

Limitation 5: Failures need deliberate alerting

When something outside the connector breaks, Openflow pipelines can fail quietly. Snowflake's PostgreSQL documentation notes that the runtime canvas shows only current table status, not status changes; changes are recorded in logs.

A post-mortem published on r/snowflake shows how this can play out. The figures below are as reported by the team:

  1. A team upgraded its Openflow runtime from Small to Medium but kept a 25-credit monthly resource monitor on the connector's warehouse.
  2. The monitor suspended the warehouse on a Friday. The PostgreSQL CDC connector kept retrying its merges, up to its default of 10,000 retries per table.
  3. Over roughly 39 hours, more than a million rejected queries ran up cloud services charges that the team said far exceeded the monitor's whole quota.
  4. The tables moved to FAILED status without an alert. The team found four days of missing data on Monday, from stale dashboards.
  5. Recovery required a full re-snapshot of every affected table, which took several hours.

The trigger was the team's own undersized resource monitor, which they acknowledged. The lesson is that retry behavior plus unconfigured alerting turned a configuration mistake into a multi-day data outage. An Openflow product manager replied that Snowflake is changing how connectors behave when the warehouse is unavailable, so check the version history for that fix before treating this as current behavior.

Openflow does provide alerts for data staleness and queue buildup through its observability dashboard. The takeaway is to configure them, and to use resource monitors that notify rather than suspend for critical CDC warehouses.

What this means in practice: Without properly configured alerts, a failed replication task may go unnoticed until someone discovers stale data in a dashboard or report. Teams need to monitor pipeline health, configure failure and freshness alerts, and establish recovery procedures to prevent small issues from becoming extended outages.

Limitation 6: NiFi complexity and two generations to manage

Timeline of Openflow’s Gen 1 to Gen 2 transition from May 2025 to October 2026

The most common complaint about Openflow is that it exposes Apache NiFi concepts that many data teams have never used. In Gen 1, connectors are installed and configured on a NiFi canvas of processor groups, controller services, and parameter contexts. Users across r/snowflake and r/dataengineering describe the UI as confusing, say variables must be managed processor by processor, and note that people experienced with NiFi are harder to hire than dbt or Spark engineers.

Gen 2 addresses much of this, but the transition is only partly complete:

This is also Snowflake's second approach to PostgreSQL ingestion. Its earlier native connector's documentation now says Snowflake is focused on a next-generation solution, Openflow. Teams adopting Openflow today should plan for further migration work as Gen 2 matures.

What this means in practice: Teams using Gen 1 may need to learn NiFi-specific concepts to troubleshoot or customize pipelines. Moving to Gen 2 can simplify routine setup, but teams still need to understand which connectors and capabilities are supported before planning a migration. This adds evaluation and operational work during the transition.

What Openflow Gen 2 fixes

Gen 2 removes the canvas from routine setup for supported connectors and makes Openflow manageable as code. The generally available parts are deployment and runtime SQL objects. The connector-level features below are in public preview, according to Snowflake's Gen 2 release notes and the Openflow product team:

  • Connector configuration is versioned, so teams can commit, roll back, and promote changes across environments with Git.
  • Supported connectors use a guided setup wizard instead of the canvas, and Snowflake's Cortex Code assistant can configure them conversationally.
  • Connectors can be created and managed with SQL, which makes automation in CI/CD pipelines practical.

Some users report a smooth upgrade. The release history also shows steady work on Openflow, with updates through 2026 including SQL Server CDC reaching general availability in March 2026. Claims that Openflow has been abandoned are not supported by the release record.

Gen 2 does not change the underlying architecture, though. Runtimes, warehouse merges, and multiple cost meters remain, and Gen 2 connectors cover two sources so far.

When Openflow is a good fit

Openflow makes the most sense for teams that are fully committed to Snowflake and want ingestion inside the same platform and bill. It suits teams that:

  • Need high-volume database replication where per-row pricing from other tools would be expensive. Several practitioners report that Openflow costs less than Fivetran for SQL Server at scale.
  • Already have NiFi expertise or need custom flows, such as decryption, protobuf decoding, or unusual transformations in flight.
  • Must keep data movement inside their own cloud network through BYOC.
  • Can adopt Gen 2 and its supported connectors.

It is a weaker fit for teams that need one pipeline to feed several destinations, want sub-minute freshness without tuning warehouse merge costs, or lack the time to manage runtimes, sizing, and alerting.

How to evaluate Openflow in a proof of concept

Test these five things with your own tables before committing to any CDC tool, Openflow included:

  • Runtime sizing: run peak-hour volume and confirm the runtime keeps up without a resize.
  • Schema changes: add a column, drop a column, and change a primary key on a test table; note which ones stop replication.
  • Freshness vs. cost: measure end-to-end latency at two merge schedules and record warehouse credits for each.
  • Failure recovery: suspend the warehouse or revoke a permission, then time how long until someone is alerted and how long recovery takes.
  • Monthly cost: add up every meter (runtime, warehouse, ingestion, telemetry, cloud infrastructure) for a full week and project it to a month.

Openflow vs. Estuary: side-by-side

Diagram comparing where capture and loading happen in Openflow and Estuary

Both tools replicate databases into Snowflake with CDC, and each has real strengths. Openflow's advantage is that it lives inside Snowflake: billing through Snowflake (plus your own cloud bill on BYOC), Snowflake governance, and NiFi's flexibility for custom flows. Estuary's advantage is that there is no infrastructure to size and loading is decoupled from capture.

Snowflake Openflow Estuary
Where it runs Inside your Snowflake account (Snowpark Container Services) or your own cloud (BYOC) Estuary's managed cloud, or private and BYOC deployments
Billing Through Snowflake credits on your existing bill; BYOC adds your cloud provider's bill Separate vendor bill: $0.50 per GB moved plus a per-connector-instance fee; Snowflake warehouse costs still apply
Infrastructure to manage Runtimes you size up front; database CDC connectors are single-node, and runtime size is fixed at creation No runtimes to size
Connector setup NiFi canvas (Gen 1); wizard or SQL (Gen 2 preview, PostgreSQL and MySQL only) Web dashboard or flowctl CLI with YAML specs
Custom in-flight processing Full NiFi processor library for custom flows, such as decryption or protobuf decoding Derivations for real-time transformations
Freshness vs. warehouse cost Merge schedule controls warehouse use Sync schedule per materialization, with faster syncs on chosen hours or days
Destination schema Configurable schema pattern; SQL Server default is <source_db>_<source_schema> Schema and table set per binding
Destinations Built for Snowflake Snowflake plus warehouses such as BigQuery, Databricks, Redshift, and MotherDuck from the same captured data
Failure alerting Staleness and queue alerts available through the observability dashboard; must be set up Built-in alerts for task failures, stalled data movement, and idle tasks
How cost grows Practitioners report it costs less than per-row tools for large SQL Server CDC One published rate per GB moved, plus connector fees that halve after six connectors; Enterprise plans have scaled pricing. No runtime or telemetry meters to estimate.

Comparison reflects public documentation as of October 26, 2026. Both products change often.

Alternatives to Snowflake Openflow

The right alternative depends on your sources, how fresh the data must be, and whether everything must stay on the Snowflake bill. These are the tools practitioners most often compare with Openflow:

  • Fivetran, including HVR: mature managed connectors. Practitioners praise HVR's real-time replication metrics, while several say usage-based pricing gets expensive as volume grows.
  • Estuary: managed real-time CDC that decouples capture from loading, described below.
  • Airbyte: a large connector catalog, available open source or as a cloud service. Self-hosting means running the infrastructure yourself.
  • Cloud-native services (Azure Data Factory, AWS DMS): a natural fit if you already run on that cloud. Practitioner reports on their CDC reliability are mixed.

Estuary

Estuary reads changes from the source's log, such as PostgreSQL logical replication or SQL Server CDC, and stores them in durable collections. It then writes them to Snowflake through a materialization that runs on its own schedule. Capabilities that relate to the limitations above:

  • No runtimes to size or scale.
  • Per-materialization sync schedule: sync continuously, every 15 minutes, or faster only during business hours. Estuary's docs note that slower syncs reduce destination compute costs.
  • Built-in alerts: Data Movement Stalled, Task Failed, and Task Idle alerts can email a person, a list, or a Slack channel. By default, a task-failure alert fires after 3 failures in 8 hours.
  • Destination control: you choose the Snowflake schema and table for each binding, and the same captured data can feed other destinations.

Estuary is a weaker fit if you need everything on a single Snowflake bill or rely on custom NiFi flows.

Next step: run the same PostgreSQL or SQL Server tables through both tools and compare freshness, setup effort, and total cost. Estuary's free tier includes 10 GB per month and 2 connectors. See Estuary plans and start a free trial.

Top comments (0)