# Cloudflare Pipelines [[Cloudflare]] Pipelines (renamed **Basin Pipelines** on October 1, 2026, when Cloudflare Basin went GA) is a managed data-ingestion service that accepts high-volume event streams via HTTP or Worker bindings, transforms them with SQL, and writes the output to [[Cloudflare R2]] as JSON, Parquet or Apache Iceberg tables. Think of it as "Kafka → S3 for the lazy" — no brokers, no Schema Registry, no Flink job. It is the missing primitive between [[Cloudflare Queues]] (transactional messaging) and analytics workloads (batch over big data). Queues is for "process each message once"; Pipelines is for "ingest millions of events and dump them somewhere queryable." ## Why It Matters Building event ingestion yourself means standing up Kafka or Kinesis, writing a sink, partitioning files, handling [[Backpressure|backpressure]], monitoring lag. Pipelines collapses all of that to a binding call: `env.MY_PIPELINE.send(events)`. Output lands in [[Cloudflare R2]], ready to query with [[DuckDB]], Athena, ClickHouse, or whatever analytics engine. It's now one piece of a bigger product. **[[Cloudflare Basin]]** (formerly the Cloudflare Data Platform) bundles Basin Pipelines for ingestion, Basin Catalog (formerly R2 Data Catalog) for managed Iceberg tables with automatic compaction, and Basin SQL (formerly R2 SQL) for serverless queries. Existing resources and configs keep working under the new names. ## Common Use Cases - **Analytics event ingestion** — product analytics, clickstreams - **Log aggregation** to R2 for cheap long-term storage - **CDC sinks** — write database change events to columnar files - **AI training data collection** — gather inference inputs/outputs for fine-tuning - **Audit trails** — immutable append-only event records ## Architecture Shape - HTTP endpoint, Worker binding or Cloudflare Logpush (since April 2026) feeds a stream - An optional SQL transform filters, reshapes or unnests events on the way in - Cloudflare buffers, batches, partitions (by time and key) - Writes JSON or Parquet files, or Iceberg tables managed by Basin Catalog, to a configured R2 bucket - Downstream analytics queries the bucket with Basin SQL or any Iceberg-compatible engine (DuckDB, Spark, Snowflake, PyIceberg) - Each stream ingests up to 1 GB/s (raised from 5 MB/s on October 1, 2026) ## Pricing Shape Billing started on August 3, 2026: - **Ingress**: free, whatever the volume - **SQL transforms**: $0.04/GB - **Sinks**: $0.03/GB for JSON, $0.06/GB for Parquet or Iceberg - **Included**: 1 GB/month per dimension on Workers Free, 50 GB/month on Workers Paid - R2 storage and operations (plus Basin Catalog fees for Iceberg tables) come on top ## References - Basin Pipelines home (the old /pipelines/ URL redirects here): https://developers.cloudflare.com/basin-pipelines/ - Basin overview: https://developers.cloudflare.com/basin/ - Changelog, Pipelines as a Logpush destination (2026-04-20): https://developers.cloudflare.com/changelog/post/2026-04-20-pipelines-logpush-destination/ - Changelog, Pipelines pricing announced (2026-05-28): https://developers.cloudflare.com/changelog/post/2026-05-11-pipelines-pricing-announced/ - Changelog, billing enabled for Pipelines (2026-08-03): https://developers.cloudflare.com/changelog/post/2026-08-03-pipelines-billing-enabled/ - Changelog, Cloudflare Basin GA (2026-10-01): https://developers.cloudflare.com/changelog/post/2026-10-01-basin-ga/ - Changelog, 1 GB/s per stream (2026-10-01): https://developers.cloudflare.com/changelog/post/2026-10-01-stream-ingest-limit-increase/ ## Related - [[Cloudflare]] - [[Cloudflare Basin]] - [[Cloudflare Workers]] - [[Cloudflare R2]] - [[Cloudflare Queues]] - [[DuckDB]] - [[Wrangler]]