Eon Yukon

Retire the Spark and Flink jobs that land, clean and maintain your tables

Eon Yukon lands, cleans and maintains streaming tables in a single pass, so the jobs you built to do it can retire.

Illustration of an old gear-driven pipeline machine replaced by one streamlined data engine

Streaming pipelines became a platform to run

Getting events from Kafka and files into the lake takes Flink, Spark or Kafka Connect jobs, then MERGE jobs to keep tables correct, then compaction and OPTIMIZE to keep them fast. Each job rereads the same bytes on its own cluster with its own on-call, and the tables are only as fresh as the slowest job.

Jobs that reread the same data

Ingest, dedup, compaction, sorting and quality checks each run as a separate job over the same bytes, so compute grows with every job you add, not with the data.

State and checkpoints to operate

Large Flink jobs keep state on local disks, with checkpoints and savepoints to size, and rescaling means a restart from a savepoint. Hot partitions and global checkpoints limit how far a job scales.

Tables that need cleanup

Frequent commits leave many small files, and upserts slow down at scale. Flink's Iceberg sink leaves compaction off by default, and Spark needs rewrite and snapshot-expiry jobs on a schedule.

Freshness measured in minutes

Data is fresh as of the last checkpoint or micro-batch, minutes in practice, while dashboards and agents need the current state.

How Eon replaces the pipeline stack

Eon Yukon reads each event once and does every job in that pass: dedup, upserts, transforms, aggregation, sorting, compaction and statistics, committed together to Apache Iceberg in a dedicated account in your region, shared with you, or in your own account with BYOC. Batch Spark jobs run unchanged over Spark Connect, serverless. Flink stays the right tool for stream-to-stream joins and complex stateful logic. Spark jobs built on RDDs or custom JVM libraries, and GPU training, stay on Spark. Jobs that write back into operational systems stay where they are.

One pass, every job built in

Describe the table you want, and Eon lands it deduplicated, keyed, sorted and aggregated, with statistics and context written in the same commit and automatic schema evolution. There is no bronze layer to clean up and no MERGE job to schedule, and tables are queryable within seconds.

One pass, no jobs: One pass over every event for every feature, no compaction crons or merge jobs, and any engine reads the result.

Maintenance that runs itself

Compaction, sorting and cleanup run continuously, within minutes, and each byte is rewritten a bounded number of times. Writing and maintenance scale independently. Work is shared out by bytes, not by partition, so skewed keys don't stall the pipeline, and with no global checkpoint, losing a node doesn't restart the pipeline, and it scales with traffic without a restart.

Standard Iceberg, kept tidy: Compacted and sorted, right-sized files, rich column statistics, standard spec.

Spark jobs, unchanged and serverless

Batch ETL jobs run unchanged over Spark Connect on Eon Yukon, serverless, with nothing running when idle. Spark, Trino or Presto clusters kept up for ad-hoc queries can go too.

Works with what you have: Every table is Iceberg, registered in your catalog and read by Snowflake, Databricks, BigQuery, Athena, Trino, Spark and ClickHouse.

Less compute for the same streams

Our public benchmarks show Eon uses 4× to 7× less compute than open-source Spark and Flink for ingestion and compaction combined.

Compute used to keep up: requested vCPU and memory per engine, ingest only and with compaction.

See how Eon works in your environment

Bring a Spark or Flink pipeline you run today and we will show you that data landing in Eon Yukon tables, with freshness and compute compared side by side.