Skip to content

Why not table topics ​

Kafka platforms write topics as Iceberg tables themselves: Confluent Tableflow, Redpanda Iceberg Topics, AutoMQ Table Topic, Aiven Iceberg Topics and StreamNative Ursa. It is the copy a connector makes, run by the platform. The table lags the topic, and each needs that platform. Mink runs next to any Kafka cluster and serves a topic as a table, with every record committed when the table loads.

How they work ​

ProductPlatformFreshness
Confluent TableflowConfluent Cloud onlyAbout 5 minutes
Redpanda Iceberg TopicsRedpanda Enterprise. On Redpanda Cloud, BYOC and BYOVPC only.iceberg_target_lag_ms, 1 minute by default, 10 seconds at least
AutoMQ Table TopicAutoMQ 1.5 or later, enabled when the cluster is deployedautomq.table.topic.commit.interval.ms, up to 15 minutes
Aiven Iceberg TopicsApache Kafka with Aiven's tiered storage plugin. Alpha.Once a segment rolls and is tiered
StreamNative Ursa for KafkaA fork of Apache Kafka. Limited public preview.Seconds to a minute after the write
ProductWrites the tableLimits
TableflowParquet in managed storage or your bucket, beside the topicSchema Registry required for keys and values. Topics without a schema are not supported.
RedpandaThe broker writes Parquet, beside the tiered log segmentsTurning it on does not backfill an existing topic
AutoMQTable workers in the broker, beside the stream storage
AivenParquet when a segment is tiered, as the only remote copy. Tiered reads are rebuilt from it.Avro values and a Schema Registry only. The first schema sets the table schema, with no evolution. No transactional batches.
StreamNativeThe write-ahead log in S3 is compacted into Parquet, as the only remote copy of a diskless topicDiskless topics have no transactions and no compaction

Differences ​

Table topicsMink
KafkaThat vendor's platform, or Apache Kafka with Aiven's pluginAny Kafka cluster, unchanged
FreshnessThe table lags by the commit interval or the segment rollEvery record committed when the table loads
CopiesMost keep the log and Parquet. Aiven and Ursa keep one remote copy.Kafka only. The bucket holds metadata.
SchemasRequired by Tableflow and AivenOptional. Without one, the key and value stay raw bytes.
TransactionsNot supported by Aiven or by Ursa's diskless topicsCommitted records only, aborted ones skipped
UpdatesTableflow's upsert modeNone. One row per record.
HistoryThe table can outlive the logAs far back as Kafka's retention
EnginesAny that reads the catalog and the storageAny with an Iceberg REST catalog and a configurable S3 endpoint

When they fit ​

  • Topics already on that platform.
  • Tables kept longer than the log's retention.
  • Upsert tables from compacted topics, with Tableflow.
  • Engines that read only from cloud storage, such as managed warehouse services.

Sources ​