You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fluss.apache.org by gi...@apache.org on 2026/04/18 11:07:34 UTC
(fluss-website) branch asf-site updated: Deploy website - based on 910ecb1ca85c2c6417d65775bc968cebe2c1f56e
This is an automated email from the ASF dual-hosted git repository.
github-actions[bot] pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/fluss-website.git
The following commit(s) were added to refs/heads/asf-site by this push:
new c20f2f8e1 Deploy website - based on 910ecb1ca85c2c6417d65775bc968cebe2c1f56e
c20f2f8e1 is described below
commit c20f2f8e1120f4f5bf9419cc108ade25ddd70eb3
Author: gh-actions <ac...@github.com>
AuthorDate: Sat Apr 18 11:07:26 2026 +0000
Deploy website - based on 910ecb1ca85c2c6417d65775bc968cebe2c1f56e
---
404.html | 4 ++--
.../{048b8dbf.ceff9b78.js => 048b8dbf.c9badc43.js} | 2 +-
.../{05509bbb.920dc8db.js => 05509bbb.8598567b.js} | 2 +-
.../{061ac8d1.a2a3d20e.js => 061ac8d1.1609cb5d.js} | 2 +-
.../{0cbde89a.ee89614b.js => 0cbde89a.105db849.js} | 2 +-
.../{17808637.5954df4e.js => 17808637.b5784057.js} | 2 +-
.../{2063472f.fcea7d61.js => 2063472f.36bd9718.js} | 2 +-
.../{23b051ad.8031dbef.js => 23b051ad.dc8e095b.js} | 2 +-
.../{24a98e97.b7422e20.js => 24a98e97.1118ee95.js} | 2 +-
.../{2606074a.9bbabcc1.js => 2606074a.a028ee5b.js} | 2 +-
.../{287174ef.c420d359.js => 287174ef.26ff038e.js} | 2 +-
.../{30091e2f.a3f9fd36.js => 30091e2f.d0828e08.js} | 2 +-
.../{30cd2908.ddea4675.js => 30cd2908.db97525a.js} | 2 +-
.../{3258a04a.509ab7a8.js => 3258a04a.ad395bc2.js} | 2 +-
.../{3c7052ee.20d44885.js => 3c7052ee.e1e6686a.js} | 2 +-
.../{4337d25c.c9e6ba80.js => 4337d25c.fda8f719.js} | 2 +-
.../{5142b284.a873b0f3.js => 5142b284.f08a9f94.js} | 2 +-
.../{516b0f79.7504e0f5.js => 516b0f79.493f012b.js} | 2 +-
.../{51a9489d.5e6699a6.js => 51a9489d.5893e427.js} | 2 +-
.../{52843a07.10c9159a.js => 52843a07.8fa28d76.js} | 2 +-
.../{539384a7.344ec43a.js => 539384a7.e6a79bdb.js} | 2 +-
.../{53e6ccc4.5af701f9.js => 53e6ccc4.6bbeb547.js} | 2 +-
.../{5eb2b302.e7dbc6cb.js => 5eb2b302.b5039936.js} | 2 +-
.../{61e3d4cc.a31fb01f.js => 61e3d4cc.b6e319b5.js} | 2 +-
.../{687ff54f.4c4d8f07.js => 687ff54f.78da9232.js} | 2 +-
.../{6ada9c37.23907de4.js => 6ada9c37.40e2c0f3.js} | 2 +-
.../{6f951a55.cef6ae92.js => 6f951a55.b33b2ea3.js} | 2 +-
.../{708a973e.81a77d75.js => 708a973e.0e8adffc.js} | 2 +-
.../{7144bb3b.8ed1e2e1.js => 7144bb3b.6345336c.js} | 2 +-
.../{7341f5c8.a2f273af.js => 7341f5c8.4569b695.js} | 2 +-
.../{8e9d555c.3bf3964c.js => 8e9d555c.c8763c84.js} | 2 +-
.../{92e114eb.409df272.js => 92e114eb.18992fdd.js} | 2 +-
.../{994319c2.3f8ee78e.js => 994319c2.d7fccc02.js} | 2 +-
.../{9cd743c9.622c51a4.js => 9cd743c9.1bef7dc6.js} | 2 +-
.../{a046152e.958a3a46.js => a046152e.3805d71d.js} | 2 +-
.../{a0c834e8.fbd48b92.js => a0c834e8.ee1f3b6d.js} | 2 +-
.../{aa40db63.2bde0e82.js => aa40db63.12ed9fd4.js} | 2 +-
.../{ab04c325.42e252af.js => ab04c325.7e01b981.js} | 2 +-
assets/js/b28be667.44ee72d5.js | 1 -
assets/js/b28be667.cc316d51.js | 1 +
.../{c018ef01.0c4dea67.js => c018ef01.e479dbd8.js} | 2 +-
.../{c4b7cb01.0c64bad4.js => c4b7cb01.e95d3cc3.js} | 2 +-
.../{ca48f0b2.ec92fe74.js => ca48f0b2.0bed3079.js} | 2 +-
.../{d5e40cee.713ed7ef.js => d5e40cee.9c03a5ba.js} | 2 +-
.../{d87df568.545ef8be.js => d87df568.3c65236f.js} | 2 +-
.../{d8b46579.2bbc888d.js => d8b46579.23ee713e.js} | 2 +-
assets/js/dbfc4782.0a2fe618.js | 1 -
assets/js/dbfc4782.922bf57a.js | 1 +
assets/js/dd04b75e.3c2612ff.js | 1 +
assets/js/dd04b75e.f56c6d46.js | 1 -
.../{ed089b76.0d56fb59.js => ed089b76.cf060c50.js} | 2 +-
.../{ee7aa8c3.a55e4d44.js => ee7aa8c3.8f76634b.js} | 2 +-
.../{f618cca1.042c863d.js => f618cca1.17d6180f.js} | 2 +-
.../{f6ebaea3.73eb7e46.js => f6ebaea3.ae7f81bf.js} | 2 +-
.../{fa91aee9.52c3be75.js => fa91aee9.b10577a6.js} | 2 +-
.../{ff2ceeff.1bd683bd.js => ff2ceeff.64175d1d.js} | 2 +-
assets/js/{main.f86c048a.js => main.9d2d82c2.js} | 4 ++--
...js.LICENSE.txt => main.9d2d82c2.js.LICENSE.txt} | 0
...e~main.46615272.js => runtime~main.014214b6.js} | 2 +-
avatars/fresh-borzoni.png | Bin 0 -> 20158 bytes
avatars/gyang94.png | Bin 0 -> 34642 bytes
avatars/jacopogardini.png | Bin 0 -> 282346 bytes
avatars/leekeiabstraction.png | Bin 0 -> 33723 bytes
avatars/luoyuxia.png | Bin 0 -> 283656 bytes
avatars/mehulbatra.png | Bin 0 -> 284257 bytes
avatars/polyzos.png | Bin 0 -> 41956 bytes
avatars/wanglilei.png | Bin 0 -> 73522 bytes
avatars/wuchong.png | Bin 0 -> 307059 bytes
avatars/yangwang.jpeg | Bin 0 -> 26035 bytes
avatars/zhangxinyu.png | Bin 0 -> 37808 bytes
.../index.html | 8 +++----
blog/archive/index.html | 4 ++--
blog/atom.xml | 16 ++++++-------
blog/authors/index.html | 6 ++---
blog/fluss-for-ai/index.html | 8 +++----
blog/fluss-intro/index.html | 8 +++----
blog/fluss-java-client/index.html | 8 +++----
blog/fluss-joins-asf/index.html | 8 +++----
blog/fluss-open-source/index.html | 8 +++----
blog/fluss_fraud_detection/index.html | 8 +++----
blog/fluss_rust_client_release/index.html | 10 ++++----
blog/hands-on-fluss-lakehouse/index.html | 8 +++----
blog/index.html | 26 ++++++++++-----------
blog/page/2/index.html | 26 ++++++++++-----------
blog/page/3/index.html | 10 ++++----
blog/partial-updates/index.html | 8 +++----
blog/pk-key-tables-log-cache-streaming/index.html | 8 +++----
blog/releases/0.6/index.html | 8 +++----
blog/releases/0.7/index.html | 8 +++----
blog/releases/0.8/index.html | 8 +++----
blog/releases/0.9/index.html | 10 ++++----
blog/roaringbitmap-uv-deduplication/index.html | 8 +++----
blog/rss.xml | 16 ++++++-------
blog/tags/apache-fluss/index.html | 6 ++---
blog/tags/apache-iceberg/index.html | 6 ++---
blog/tags/arrow/index.html | 12 +++++-----
blog/tags/fluss-cpp/index.html | 12 +++++-----
blog/tags/fluss-rs/index.html | 10 ++++----
blog/tags/fluss-rust/index.html | 12 +++++-----
blog/tags/index.html | 6 ++---
blog/tags/pyfluss/index.html | 12 +++++-----
blog/tags/real-time-analytics/index.html | 6 ++---
blog/tags/releases/index.html | 14 +++++------
blog/tags/streaming-lakehouse/index.html | 6 ++---
blog/taobao-practice/index.html | 8 +++----
blog/tiering-service/index.html | 8 +++----
blog/unified-streaming-lakehouse/index.html | 8 +++----
blog/unveil-fluss-logo/index.html | 8 +++----
.../index.html | 10 ++++----
blog/why-fluss/index.html | 8 +++----
community/become-a-committer/index.html | 4 ++--
community/dev/building/index.html | 4 ++--
community/dev/ide-setup/index.html | 4 ++--
community/fluss-logos/index.html | 4 ++--
community/fluss-team/index.html | 4 ++--
.../bug-reports-feature-requests/index.html | 4 ++--
.../how-to-contribute/contribute-code/index.html | 4 ++--
.../how-to-contribute/contribute-docs/index.html | 4 ++--
.../review-pull-requests/index.html | 4 ++--
.../creating-a-fluss-release/index.html | 6 ++---
.../creating-a-fluss-shaded-release/index.html | 4 ++--
.../release-manager-preparation/index.html | 4 ++--
.../verifying-a-fluss-release/index.html | 4 ++--
.../verifying-a-fluss-shaded-release/index.html | 4 ++--
community/welcome/index.html | 4 ++--
docs/0.5/concepts/architecture/index.html | 4 ++--
docs/0.5/dev/building/index.html | 4 ++--
docs/0.5/dev/ide-setup/index.html | 4 ++--
docs/0.5/engine-flink/ddl/index.html | 4 ++--
docs/0.5/engine-flink/getting-started/index.html | 4 ++--
docs/0.5/engine-flink/lookups/index.html | 4 ++--
docs/0.5/engine-flink/reads/index.html | 4 ++--
docs/0.5/engine-flink/writes/index.html | 4 ++--
docs/0.5/index.html | 4 ++--
.../deploying-distributed-cluster/index.html | 4 ++--
.../deploying-local-cluster/index.html | 4 ++--
.../deploying-with-docker/index.html | 4 ++--
docs/0.5/install-deploy/overview/index.html | 4 ++--
docs/0.5/maintenance/configuration/index.html | 4 ++--
docs/0.5/maintenance/filesystems/hdfs/index.html | 4 ++--
docs/0.5/maintenance/filesystems/oss/index.html | 4 ++--
.../maintenance/filesystems/overview/index.html | 4 ++--
docs/0.5/maintenance/filesystems/s3/index.html | 4 ++--
docs/0.5/maintenance/logging/index.html | 4 ++--
docs/0.5/maintenance/metric-reporters/index.html | 4 ++--
docs/0.5/maintenance/monitor-metrics/index.html | 4 ++--
.../tiered-storage/lakehouse-storage/index.html | 4 ++--
.../maintenance/tiered-storage/overview/index.html | 4 ++--
.../tiered-storage/remote-storage/index.html | 4 ++--
docs/0.5/quickstart/flink/index.html | 4 ++--
.../integrate-data-lakes/paimon/index.html | 4 ++--
docs/0.5/streaming-lakehouse/overview/index.html | 4 ++--
.../data-distribution/bucketing/index.html | 4 ++--
.../data-distribution/partitioning/index.html | 4 ++--
.../table-design/data-distribution/ttl/index.html | 4 ++--
docs/0.5/table-design/data-types/index.html | 4 ++--
docs/0.5/table-design/overview/index.html | 4 ++--
.../table-design/table-types/log-table/index.html | 4 ++--
.../table-design/table-types/pk-table/index.html | 4 ++--
docs/0.6/concepts/architecture/index.html | 4 ++--
docs/0.6/engine-flink/ddl/index.html | 4 ++--
docs/0.6/engine-flink/getting-started/index.html | 4 ++--
docs/0.6/engine-flink/lookups/index.html | 4 ++--
docs/0.6/engine-flink/options/index.html | 4 ++--
docs/0.6/engine-flink/reads/index.html | 4 ++--
docs/0.6/engine-flink/writes/index.html | 4 ++--
docs/0.6/index.html | 4 ++--
.../deploying-distributed-cluster/index.html | 4 ++--
.../deploying-local-cluster/index.html | 4 ++--
.../deploying-with-docker/index.html | 4 ++--
docs/0.6/install-deploy/overview/index.html | 4 ++--
docs/0.6/maintenance/configuration/index.html | 4 ++--
docs/0.6/maintenance/filesystems/hdfs/index.html | 4 ++--
docs/0.6/maintenance/filesystems/oss/index.html | 4 ++--
.../maintenance/filesystems/overview/index.html | 4 ++--
docs/0.6/maintenance/filesystems/s3/index.html | 4 ++--
.../maintenance/observability/logging/index.html | 4 ++--
.../observability/metric-reporters/index.html | 4 ++--
.../observability/monitor-metrics/index.html | 4 ++--
.../observability/quickstart/index.html | 4 ++--
.../tiered-storage/lakehouse-storage/index.html | 4 ++--
.../maintenance/tiered-storage/overview/index.html | 4 ++--
.../tiered-storage/remote-storage/index.html | 4 ++--
docs/0.6/quickstart/flink/index.html | 4 ++--
.../integrate-data-lakes/paimon/index.html | 4 ++--
docs/0.6/streaming-lakehouse/overview/index.html | 4 ++--
.../data-distribution/bucketing/index.html | 4 ++--
.../data-distribution/partitioning/index.html | 4 ++--
.../table-design/data-distribution/ttl/index.html | 4 ++--
docs/0.6/table-design/data-types/index.html | 4 ++--
docs/0.6/table-design/overview/index.html | 4 ++--
.../table-design/table-types/log-table/index.html | 4 ++--
.../table-design/table-types/pk-table/index.html | 4 ++--
.../pk-table/merge-engines/first-row/index.html | 4 ++--
.../table-types/pk-table/merge-engines/index.html | 4 ++--
.../pk-table/merge-engines/versioned/index.html | 4 ++--
docs/0.7/apis/java-client/index.html | 4 ++--
docs/0.7/concepts/architecture/index.html | 4 ++--
docs/0.7/engine-flink/datastream/index.html | 4 ++--
docs/0.7/engine-flink/ddl/index.html | 4 ++--
docs/0.7/engine-flink/getting-started/index.html | 4 ++--
docs/0.7/engine-flink/lookups/index.html | 4 ++--
docs/0.7/engine-flink/options/index.html | 4 ++--
docs/0.7/engine-flink/reads/index.html | 4 ++--
docs/0.7/engine-flink/writes/index.html | 4 ++--
docs/0.7/index.html | 4 ++--
.../deploying-distributed-cluster/index.html | 4 ++--
.../deploying-local-cluster/index.html | 4 ++--
.../deploying-with-docker/index.html | 4 ++--
docs/0.7/install-deploy/overview/index.html | 4 ++--
docs/0.7/maintenance/configuration/index.html | 4 ++--
docs/0.7/maintenance/filesystems/hdfs/index.html | 4 ++--
docs/0.7/maintenance/filesystems/oss/index.html | 4 ++--
.../maintenance/filesystems/overview/index.html | 4 ++--
docs/0.7/maintenance/filesystems/s3/index.html | 4 ++--
.../maintenance/observability/logging/index.html | 4 ++--
.../observability/metric-reporters/index.html | 4 ++--
.../observability/monitor-metrics/index.html | 4 ++--
.../observability/quickstart/index.html | 4 ++--
docs/0.7/maintenance/operations/racks/index.html | 4 ++--
.../maintenance/operations/upgrading/index.html | 4 ++--
.../tiered-storage/lakehouse-storage/index.html | 4 ++--
.../maintenance/tiered-storage/overview/index.html | 4 ++--
.../tiered-storage/remote-storage/index.html | 4 ++--
docs/0.7/quickstart/flink/index.html | 4 ++--
docs/0.7/quickstart/security/index.html | 4 ++--
docs/0.7/security/authentication/index.html | 4 ++--
docs/0.7/security/authorization/index.html | 4 ++--
docs/0.7/security/overview/index.html | 4 ++--
.../integrate-data-lakes/paimon/index.html | 4 ++--
docs/0.7/streaming-lakehouse/overview/index.html | 4 ++--
.../data-distribution/bucketing/index.html | 4 ++--
.../data-distribution/partitioning/index.html | 4 ++--
.../table-design/data-distribution/ttl/index.html | 4 ++--
docs/0.7/table-design/data-types/index.html | 4 ++--
docs/0.7/table-design/overview/index.html | 4 ++--
.../table-design/table-types/log-table/index.html | 4 ++--
.../table-design/table-types/pk-table/index.html | 4 ++--
.../pk-table/merge-engines/default/index.html | 4 ++--
.../pk-table/merge-engines/first-row/index.html | 4 ++--
.../table-types/pk-table/merge-engines/index.html | 4 ++--
.../pk-table/merge-engines/versioned/index.html | 4 ++--
docs/0.8/apis/java-client/index.html | 4 ++--
docs/0.8/concepts/architecture/index.html | 4 ++--
docs/0.8/engine-flink/datastream/index.html | 4 ++--
docs/0.8/engine-flink/ddl/index.html | 4 ++--
docs/0.8/engine-flink/delta-joins/index.html | 4 ++--
docs/0.8/engine-flink/getting-started/index.html | 4 ++--
docs/0.8/engine-flink/lookups/index.html | 4 ++--
docs/0.8/engine-flink/options/index.html | 4 ++--
docs/0.8/engine-flink/reads/index.html | 4 ++--
docs/0.8/engine-flink/writes/index.html | 4 ++--
docs/0.8/index.html | 4 ++--
.../deploying-distributed-cluster/index.html | 4 ++--
.../deploying-local-cluster/index.html | 4 ++--
.../deploying-with-docker/index.html | 4 ++--
.../install-deploy/deploying-with-helm/index.html | 4 ++--
docs/0.8/install-deploy/overview/index.html | 4 ++--
docs/0.8/maintenance/configuration/index.html | 4 ++--
docs/0.8/maintenance/filesystems/hdfs/index.html | 4 ++--
docs/0.8/maintenance/filesystems/obs/index.html | 4 ++--
docs/0.8/maintenance/filesystems/oss/index.html | 4 ++--
.../maintenance/filesystems/overview/index.html | 4 ++--
docs/0.8/maintenance/filesystems/s3/index.html | 4 ++--
.../maintenance/observability/logging/index.html | 4 ++--
.../observability/metric-reporters/index.html | 4 ++--
.../observability/monitor-metrics/index.html | 4 ++--
.../observability/quickstart/index.html | 4 ++--
.../operations/graceful-shutdown/index.html | 4 ++--
docs/0.8/maintenance/operations/racks/index.html | 4 ++--
.../operations/updating-configs/index.html | 4 ++--
.../operations/upgrade-notes-0.8/index.html | 4 ++--
.../operations/upgrade-notes-0.9/index.html | 4 ++--
.../maintenance/operations/upgrading/index.html | 4 ++--
.../tiered-storage/lakehouse-storage/index.html | 4 ++--
.../maintenance/tiered-storage/overview/index.html | 4 ++--
.../tiered-storage/remote-storage/index.html | 4 ++--
docs/0.8/quickstart/flink/index.html | 4 ++--
docs/0.8/quickstart/lakehouse/index.html | 4 ++--
docs/0.8/quickstart/security/index.html | 4 ++--
docs/0.8/security/authentication/index.html | 4 ++--
docs/0.8/security/authorization/index.html | 4 ++--
docs/0.8/security/overview/index.html | 4 ++--
.../integrate-data-lakes/iceberg/index.html | 4 ++--
.../integrate-data-lakes/lance/index.html | 4 ++--
.../integrate-data-lakes/paimon/index.html | 4 ++--
docs/0.8/streaming-lakehouse/overview/index.html | 4 ++--
.../data-distribution/bucketing/index.html | 4 ++--
.../data-distribution/partitioning/index.html | 4 ++--
.../table-design/data-distribution/ttl/index.html | 4 ++--
docs/0.8/table-design/data-types/index.html | 4 ++--
docs/0.8/table-design/overview/index.html | 4 ++--
.../table-design/table-types/log-table/index.html | 4 ++--
.../table-design/table-types/pk-table/index.html | 4 ++--
.../pk-table/merge-engines/default/index.html | 4 ++--
.../pk-table/merge-engines/first-row/index.html | 4 ++--
.../table-types/pk-table/merge-engines/index.html | 4 ++--
.../pk-table/merge-engines/versioned/index.html | 4 ++--
docs/apis/client-support-matrix/index.html | 4 ++--
docs/apis/java-client/index.html | 4 ++--
docs/concepts/architecture/index.html | 4 ++--
docs/engine-flink/datastream/index.html | 4 ++--
docs/engine-flink/ddl/index.html | 4 ++--
docs/engine-flink/delta-joins/index.html | 4 ++--
docs/engine-flink/getting-started/index.html | 4 ++--
docs/engine-flink/lookups/index.html | 4 ++--
docs/engine-flink/options/index.html | 4 ++--
docs/engine-flink/procedures/index.html | 4 ++--
docs/engine-flink/reads/index.html | 4 ++--
docs/engine-flink/writes/index.html | 4 ++--
docs/engine-spark/ddl/index.html | 4 ++--
docs/engine-spark/getting-started/index.html | 4 ++--
docs/engine-spark/options/index.html | 4 ++--
docs/engine-spark/procedures/index.html | 4 ++--
docs/engine-spark/reads/index.html | 4 ++--
docs/engine-spark/structured-streaming/index.html | 4 ++--
docs/engine-spark/writes/index.html | 4 ++--
docs/index.html | 4 ++--
.../deploying-distributed-cluster/index.html | 4 ++--
.../deploying-local-cluster/index.html | 4 ++--
.../deploying-with-docker/index.html | 4 ++--
docs/install-deploy/deploying-with-helm/index.html | 4 ++--
docs/install-deploy/overview/index.html | 4 ++--
docs/maintenance/configuration/index.html | 4 ++--
docs/maintenance/filesystems/azure/index.html | 4 ++--
docs/maintenance/filesystems/hdfs/index.html | 4 ++--
docs/maintenance/filesystems/obs/index.html | 4 ++--
docs/maintenance/filesystems/oss/index.html | 4 ++--
docs/maintenance/filesystems/overview/index.html | 4 ++--
docs/maintenance/filesystems/s3/index.html | 4 ++--
docs/maintenance/observability/logging/index.html | 4 ++--
.../observability/metric-reporters/index.html | 4 ++--
.../observability/monitor-metrics/index.html | 4 ++--
.../observability/quickstart/index.html | 4 ++--
.../operations/graceful-shutdown/index.html | 4 ++--
docs/maintenance/operations/racks/index.html | 4 ++--
docs/maintenance/operations/rebalance/index.html | 4 ++--
.../operations/updating-configs/index.html | 4 ++--
.../operations/upgrade-notes-0.8/index.html | 4 ++--
.../operations/upgrade-notes-0.9/index.html | 4 ++--
.../operations/upgrade-notes-archive/index.html | 4 ++--
docs/maintenance/operations/upgrading/index.html | 4 ++--
.../tiered-storage/lakehouse-storage/index.html | 4 ++--
.../maintenance/tiered-storage/overview/index.html | 4 ++--
.../tiered-storage/remote-storage/index.html | 4 ++--
docs/next/apis/client-support-matrix/index.html | 4 ++--
docs/next/apis/cpp-client/index.html | 4 ++--
docs/next/apis/java-client/index.html | 4 ++--
docs/next/apis/python-client/index.html | 4 ++--
docs/next/apis/rust-client/index.html | 4 ++--
docs/next/concepts/architecture/index.html | 4 ++--
docs/next/engine-flink/datastream/index.html | 4 ++--
docs/next/engine-flink/ddl/index.html | 4 ++--
docs/next/engine-flink/delta-joins/index.html | 4 ++--
docs/next/engine-flink/getting-started/index.html | 4 ++--
docs/next/engine-flink/lookups/index.html | 4 ++--
docs/next/engine-flink/options/index.html | 4 ++--
docs/next/engine-flink/procedures/index.html | 4 ++--
docs/next/engine-flink/reads/index.html | 4 ++--
docs/next/engine-flink/writes/index.html | 4 ++--
docs/next/engine-spark/ddl/index.html | 4 ++--
docs/next/engine-spark/getting-started/index.html | 4 ++--
docs/next/engine-spark/options/index.html | 4 ++--
docs/next/engine-spark/procedures/index.html | 4 ++--
docs/next/engine-spark/reads/index.html | 4 ++--
.../engine-spark/structured-streaming/index.html | 4 ++--
docs/next/engine-spark/writes/index.html | 4 ++--
docs/next/index.html | 4 ++--
.../deploying-distributed-cluster/index.html | 4 ++--
.../deploying-local-cluster/index.html | 4 ++--
.../deploying-with-docker/index.html | 4 ++--
.../install-deploy/deploying-with-helm/index.html | 4 ++--
docs/next/install-deploy/overview/index.html | 4 ++--
docs/next/maintenance/configuration/index.html | 4 ++--
docs/next/maintenance/filesystems/azure/index.html | 4 ++--
docs/next/maintenance/filesystems/hdfs/index.html | 4 ++--
docs/next/maintenance/filesystems/obs/index.html | 4 ++--
docs/next/maintenance/filesystems/oss/index.html | 4 ++--
.../maintenance/filesystems/overview/index.html | 4 ++--
docs/next/maintenance/filesystems/s3/index.html | 4 ++--
.../maintenance/observability/logging/index.html | 4 ++--
.../observability/metric-reporters/index.html | 4 ++--
.../observability/monitor-metrics/index.html | 4 ++--
.../observability/quickstart/index.html | 4 ++--
.../operations/graceful-shutdown/index.html | 4 ++--
docs/next/maintenance/operations/racks/index.html | 4 ++--
.../maintenance/operations/rebalance/index.html | 4 ++--
.../operations/updating-configs/index.html | 4 ++--
.../operations/upgrade-notes-0.8/index.html | 4 ++--
.../operations/upgrade-notes-0.9/index.html | 4 ++--
.../operations/upgrade-notes-1.0/index.html | 4 ++--
.../operations/upgrade-notes-archive/index.html | 4 ++--
.../maintenance/operations/upgrading/index.html | 4 ++--
.../tiered-storage/lakehouse-storage/index.html | 4 ++--
.../maintenance/tiered-storage/overview/index.html | 4 ++--
.../tiered-storage/remote-storage/index.html | 4 ++--
docs/next/quickstart/flink/index.html | 4 ++--
docs/next/quickstart/lakehouse/index.html | 4 ++--
docs/next/quickstart/security/index.html | 4 ++--
docs/next/security/authentication/index.html | 4 ++--
docs/next/security/authorization/index.html | 4 ++--
docs/next/security/overview/index.html | 4 ++--
.../integrate-data-lakes/iceberg/index.html | 4 ++--
.../integrate-data-lakes/lance/index.html | 4 ++--
.../integrate-data-lakes/paimon/index.html | 4 ++--
docs/next/streaming-lakehouse/overview/index.html | 4 ++--
.../data-distribution/bucketing/index.html | 4 ++--
.../data-distribution/partitioning/index.html | 4 ++--
.../table-design/data-distribution/ttl/index.html | 4 ++--
docs/next/table-design/data-formats/index.html | 4 ++--
docs/next/table-design/data-types/index.html | 4 ++--
.../merge-engines/aggregation/index.html | 4 ++--
.../table-design/merge-engines/default/index.html | 4 ++--
.../merge-engines/first-row/index.html | 4 ++--
docs/next/table-design/merge-engines/index.html | 4 ++--
.../merge-engines/versioned/index.html | 4 ++--
docs/next/table-design/overview/index.html | 4 ++--
.../table-design/table-types/log-table/index.html | 4 ++--
.../table-design/table-types/pk-table/index.html | 4 ++--
docs/next/table-design/virtual-tables/index.html | 4 ++--
docs/quickstart/flink/index.html | 4 ++--
docs/quickstart/lakehouse/index.html | 4 ++--
docs/quickstart/security/index.html | 4 ++--
docs/security/authentication/index.html | 4 ++--
docs/security/authorization/index.html | 4 ++--
docs/security/overview/index.html | 4 ++--
.../integrate-data-lakes/iceberg/index.html | 4 ++--
.../integrate-data-lakes/lance/index.html | 4 ++--
.../integrate-data-lakes/paimon/index.html | 4 ++--
docs/streaming-lakehouse/overview/index.html | 4 ++--
.../data-distribution/bucketing/index.html | 4 ++--
.../data-distribution/partitioning/index.html | 4 ++--
docs/table-design/data-distribution/ttl/index.html | 4 ++--
docs/table-design/data-formats/index.html | 4 ++--
docs/table-design/data-types/index.html | 4 ++--
.../merge-engines/aggregation/index.html | 4 ++--
docs/table-design/merge-engines/default/index.html | 4 ++--
.../merge-engines/first-row/index.html | 4 ++--
docs/table-design/merge-engines/index.html | 4 ++--
.../merge-engines/versioned/index.html | 4 ++--
docs/table-design/overview/index.html | 4 ++--
docs/table-design/table-types/log-table/index.html | 4 ++--
docs/table-design/table-types/pk-table/index.html | 4 ++--
docs/table-design/virtual-tables/index.html | 4 ++--
downloads/index.html | 4 ++--
index.html | 4 ++--
learn/talks/index.html | 4 ++--
learn/videos/index.html | 4 ++--
roadmap/index.html | 4 ++--
search/index.html | 4 ++--
sw.js | 2 +-
451 files changed, 933 insertions(+), 933 deletions(-)
diff --git a/404.html b/404.html
index 21a5da51f..9330d9953 100644
--- a/404.html
+++ b/404.html
@@ -15,8 +15,8 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.5187a663.css">
-<script src="/assets/js/runtime~main.46615272.js" defer="defer"></script>
-<script src="/assets/js/main.f86c048a.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.014214b6.js" defer="defer"></script>
+<script src="/assets/js/main.9d2d82c2.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
diff --git a/assets/js/048b8dbf.ceff9b78.js b/assets/js/048b8dbf.c9badc43.js
similarity index 98%
rename from assets/js/048b8dbf.ceff9b78.js
rename to assets/js/048b8dbf.c9badc43.js
index e41f00300..77df4c07f 100644
--- a/assets/js/048b8dbf.ceff9b78.js
+++ b/assets/js/048b8dbf.c9badc43.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[8977],{57548(e,n,r){r.r(n),r.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var s=r(26399),a=r(74848),t=r(28453);const o={slug:"fluss-java-client",title:"Apache Fluss Java Client: A Deep Dive",authors:["giannis"]},i=void 0,l={authorsImageUrls:[void 0]},c=[{value:"Introduction",id:"introduction",level:2},{value:"Preflight Check",id:"preflight [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[8977],{57548(e,n,r){r.r(n),r.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var s=r(26399),a=r(74848),t=r(28453);const o={slug:"fluss-java-client",title:"Apache Fluss Java Client: A Deep Dive",authors:["giannis"]},i=void 0,l={authorsImageUrls:[void 0]},c=[{value:"Introduction",id:"introduction",level:2},{value:"Preflight Check",id:"preflight [...]
\ No newline at end of file
diff --git a/assets/js/05509bbb.920dc8db.js b/assets/js/05509bbb.8598567b.js
similarity index 62%
rename from assets/js/05509bbb.920dc8db.js
rename to assets/js/05509bbb.8598567b.js
index e52a41ecf..00bc76a96 100644
--- a/assets/js/05509bbb.920dc8db.js
+++ b/assets/js/05509bbb.8598567b.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[5152],{26731(e,t,s){s.r(t),s.d(t,{assets:()=>o,contentTitle:()=>r,default:()=>h,frontMatter:()=>l,metadata:()=>a,toc:()=>u});var a=s(1467),n=s(74848),i=s(28453);const l={slug:"why-fluss-chose-rust-for-multi-language-sdk",title:"Why Apache Fluss Chose Rust for Its Multi-Language SDK",date:new Date("2026-04-09T00:00:00.000Z"),authors:["yuxia","keithlee","anton"],tags:["fluss-rust","fluss-rs" [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[5152],{26731(e,t,s){s.r(t),s.d(t,{assets:()=>r,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>a,toc:()=>u});var a=s(1467),n=s(74848),i=s(28453);const l={slug:"why-fluss-chose-rust-for-multi-language-sdk",title:"Why Apache Fluss Chose Rust for Its Multi-Language SDK",date:new Date("2026-04-09T00:00:00.000Z"),authors:["yuxia","keithlee","anton"],tags:["fluss-rust","fluss-rs" [...]
\ No newline at end of file
diff --git a/assets/js/061ac8d1.a2a3d20e.js b/assets/js/061ac8d1.1609cb5d.js
similarity index 79%
rename from assets/js/061ac8d1.a2a3d20e.js
rename to assets/js/061ac8d1.1609cb5d.js
index 5ca3e0acb..e384771f8 100644
--- a/assets/js/061ac8d1.a2a3d20e.js
+++ b/assets/js/061ac8d1.1609cb5d.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[1007],{35663(e,t,s){s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>g,frontMatter:()=>o,metadata:()=>n,toc:()=>u});var n=s(87848),a=s(74848),r=s(28453);const o={slug:"fluss-intro",title:"Introducing Fluss: Streaming Storage for Real-Time Analytics",sidebar_label:"Introducing Fluss",authors:["jark"]},i=void 0,l={authorsImageUrls:[void 0]},u=[];function c(e){const t={a:"a",p:"p",.. [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[1007],{35663(e,t,s){s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>g,frontMatter:()=>o,metadata:()=>n,toc:()=>u});var n=s(87848),a=s(74848),r=s(28453);const o={slug:"fluss-intro",title:"Introducing Fluss: Streaming Storage for Real-Time Analytics",sidebar_label:"Introducing Fluss",authors:["jark"]},i=void 0,l={authorsImageUrls:[void 0]},u=[];function c(e){const t={a:"a",p:"p",.. [...]
\ No newline at end of file
diff --git a/assets/js/0cbde89a.ee89614b.js b/assets/js/0cbde89a.105db849.js
similarity index 84%
rename from assets/js/0cbde89a.ee89614b.js
rename to assets/js/0cbde89a.105db849.js
index 2c07d06d7..e66e8b211 100644
--- a/assets/js/0cbde89a.ee89614b.js
+++ b/assets/js/0cbde89a.105db849.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[5459],{61040(e,s,t){t.r(s),t.d(s,{assets:()=>r,contentTitle:()=>l,default:()=>c,frontMatter:()=>i,metadata:()=>n,toc:()=>u});var n=t(34878),a=t(74848),o=t(28453);const i={slug:"hands-on-fluss-lakehouse",title:"From Stream to Lake: Hands-On with Fluss Tiering into Paimon on Minio",authors:["gyang94"],image:"./assets/hands_on_fluss_lakehouse/streamhouse.png",toc_max_heading_level:5},l="From [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[5459],{61040(e,s,t){t.r(s),t.d(s,{assets:()=>r,contentTitle:()=>l,default:()=>c,frontMatter:()=>i,metadata:()=>n,toc:()=>u});var n=t(34878),a=t(74848),o=t(28453);const i={slug:"hands-on-fluss-lakehouse",title:"From Stream to Lake: Hands-On with Fluss Tiering into Paimon on Minio",authors:["gyang94"],image:"./assets/hands_on_fluss_lakehouse/streamhouse.png",toc_max_heading_level:5},l="From [...]
\ No newline at end of file
diff --git a/assets/js/17808637.5954df4e.js b/assets/js/17808637.b5784057.js
similarity index 84%
rename from assets/js/17808637.5954df4e.js
rename to assets/js/17808637.b5784057.js
index 04d5bee1d..08e0b170c 100644
--- a/assets/js/17808637.5954df4e.js
+++ b/assets/js/17808637.b5784057.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[4867],{27314(e,t,s){s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var a=s(92462),n=s(74848),o=s(28453);const i={slug:"fluss-joins-asf",title:"Fluss Joins the Apache Incubator",sidebar_label:"Fluss Joins the Apache Incubator",authors:["jark"],image:"./assets/fluss_asf/asf.png"},r=void 0,l={image:s(89087).A,authorsImageUrls:[void 0]} [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[4867],{27314(e,t,s){s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var a=s(92462),n=s(74848),o=s(28453);const i={slug:"fluss-joins-asf",title:"Fluss Joins the Apache Incubator",sidebar_label:"Fluss Joins the Apache Incubator",authors:["jark"],image:"./assets/fluss_asf/asf.png"},r=void 0,l={image:s(89087).A,authorsImageUrls:[void 0]} [...]
\ No newline at end of file
diff --git a/assets/js/2063472f.fcea7d61.js b/assets/js/2063472f.36bd9718.js
similarity index 69%
rename from assets/js/2063472f.fcea7d61.js
rename to assets/js/2063472f.36bd9718.js
index 6e9afdd54..aaf26ca9f 100644
--- a/assets/js/2063472f.fcea7d61.js
+++ b/assets/js/2063472f.36bd9718.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[3215],{17646(l){l.exports=JSON.parse('{"tags":[{"label":"fluss-rust","permalink":"/blog/tags/fluss-rust","count":2},{"label":"fluss-rs","permalink":"/blog/tags/fluss-rs","count":2},{"label":"pyfluss","permalink":"/blog/tags/pyfluss","count":2},{"label":"fluss-cpp","permalink":"/blog/tags/fluss-cpp","count":2},{"label":"arrow","permalink":"/blog/tags/arrow","count":2},{"label":"releases","p [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[3215],{17646(l){l.exports=JSON.parse('{"tags":[{"label":"Fluss Rust","permalink":"/blog/tags/fluss-rust","count":2},{"label":"fluss-rs","permalink":"/blog/tags/fluss-rs","count":2},{"label":"PyFluss","permalink":"/blog/tags/pyfluss","count":2},{"label":"Fluss C++","permalink":"/blog/tags/fluss-cpp","count":2},{"label":"Arrow","permalink":"/blog/tags/arrow","count":2},{"label":"releases","p [...]
\ No newline at end of file
diff --git a/assets/js/23b051ad.8031dbef.js b/assets/js/23b051ad.dc8e095b.js
similarity index 55%
rename from assets/js/23b051ad.8031dbef.js
rename to assets/js/23b051ad.dc8e095b.js
index 0f6cbe432..8b9d1f7e0 100644
--- a/assets/js/23b051ad.8031dbef.js
+++ b/assets/js/23b051ad.dc8e095b.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[2381],{33700(e,t,s){s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>a,metadata:()=>n,toc:()=>c});var n=s(6560),i=s(74848),o=s(28453);const a={slug:"unveil-fluss-logo",title:"The Story of Fluss Logo",authors:["jark"]},r=void 0,l={authorsImageUrls:[void 0]},c=[{value:"Introducing the Little Otter",id:"introducing-the-little-otter",level:2},{value:"Logo symbolism: [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[2381],{33700(e,t,s){s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>a,metadata:()=>n,toc:()=>c});var n=s(6560),o=s(74848),i=s(28453);const a={slug:"unveil-fluss-logo",title:"The Story of Fluss Logo",authors:["jark"]},r=void 0,l={authorsImageUrls:[void 0]},c=[{value:"Introducing the Little Otter",id:"introducing-the-little-otter",level:2},{value:"Logo symbolism: [...]
\ No newline at end of file
diff --git a/assets/js/24a98e97.b7422e20.js b/assets/js/24a98e97.1118ee95.js
similarity index 67%
rename from assets/js/24a98e97.b7422e20.js
rename to assets/js/24a98e97.1118ee95.js
index ac1ce4528..95b4436d4 100644
--- a/assets/js/24a98e97.b7422e20.js
+++ b/assets/js/24a98e97.1118ee95.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[6754],{4738(e,s,t){t.r(s),t.d(s,{assets:()=>o,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>u});var a=t(43034),n=t(74848),l=t(28453);const r={slug:"fluss_rust_client_release",date:new Date("2026-04-06T00:00:00.000Z"),title:"Announcing Apache Fluss (Incubating) Rust, Python, and C++ Client 0.1.0 Release",authors:["yuxia","keithlee","anton"],toc_max_heading_level: [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[6754],{4738(e,s,t){t.r(s),t.d(s,{assets:()=>o,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>u});var a=t(43034),n=t(74848),l=t(28453);const r={slug:"fluss_rust_client_release",date:new Date("2026-04-06T00:00:00.000Z"),title:"Announcing Apache Fluss (Incubating) Rust, Python, and C++ Client 0.1.0 Release",authors:["yuxia","keithlee","anton"],toc_max_heading_level: [...]
\ No newline at end of file
diff --git a/assets/js/2606074a.9bbabcc1.js b/assets/js/2606074a.a028ee5b.js
similarity index 78%
rename from assets/js/2606074a.9bbabcc1.js
rename to assets/js/2606074a.a028ee5b.js
index 0fd7ac224..65028d42d 100644
--- a/assets/js/2606074a.9bbabcc1.js
+++ b/assets/js/2606074a.a028ee5b.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[8527],{39052(s){s.exports=JSON.parse('{"tag":{"label":"pyfluss","permalink":"/blog/tags/pyfluss","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/pyfluss","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[8527],{39052(s){s.exports=JSON.parse('{"tag":{"label":"PyFluss","permalink":"/blog/tags/pyfluss","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/pyfluss","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/287174ef.c420d359.js b/assets/js/287174ef.26ff038e.js
similarity index 50%
rename from assets/js/287174ef.c420d359.js
rename to assets/js/287174ef.26ff038e.js
index d877641fa..29f7ae03e 100644
--- a/assets/js/287174ef.c420d359.js
+++ b/assets/js/287174ef.26ff038e.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[1833],{17822(e,s,t){t.r(s),t.d(s,{assets:()=>o,contentTitle:()=>l,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>h});var a=t(43034),r=t(74848),n=t(28453);const i={slug:"fluss_rust_client_release",date:new Date("2026-04-06T00:00:00.000Z"),title:"Announcing Apache Fluss (Incubating) Rust, Python, and C++ Client 0.1.0 Release",authors:["yuxia","keithlee","anton"],toc_max_heading_level [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[1833],{17822(e,s,t){t.r(s),t.d(s,{assets:()=>o,contentTitle:()=>l,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>h});var a=t(43034),n=t(74848),r=t(28453);const i={slug:"fluss_rust_client_release",date:new Date("2026-04-06T00:00:00.000Z"),title:"Announcing Apache Fluss (Incubating) Rust, Python, and C++ Client 0.1.0 Release",authors:["yuxia","keithlee","anton"],toc_max_heading_level [...]
\ No newline at end of file
diff --git a/assets/js/30091e2f.a3f9fd36.js b/assets/js/30091e2f.d0828e08.js
similarity index 84%
rename from assets/js/30091e2f.a3f9fd36.js
rename to assets/js/30091e2f.d0828e08.js
index 23bc2f59f..dc3612d7b 100644
--- a/assets/js/30091e2f.a3f9fd36.js
+++ b/assets/js/30091e2f.d0828e08.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[8265],{18733(e,a,t){t.r(a),t.d(a,{assets:()=>o,contentTitle:()=>l,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>u});var s=t(94579),n=t(74848),r=t(28453);const i={title:"Fluss \xd7 Iceberg (Part 1): Why Your Lakehouse Isn\u2019t a Streamhouse Yet",authors:["mehulbatra","yuxia"],date:new Date("2025-12-11T00:00:00.000Z"),tags:["streaming-lakehouse","apache-iceberg","real-time-analyti [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[8265],{18733(e,a,t){t.r(a),t.d(a,{assets:()=>o,contentTitle:()=>l,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>u});var s=t(94579),n=t(74848),r=t(28453);const i={title:"Fluss \xd7 Iceberg (Part 1): Why Your Lakehouse Isn\u2019t a Streamhouse Yet",authors:["mehulbatra","yuxia"],date:new Date("2025-12-11T00:00:00.000Z"),tags:["streaming-lakehouse","apache-iceberg","real-time-analyti [...]
\ No newline at end of file
diff --git a/assets/js/30cd2908.ddea4675.js b/assets/js/30cd2908.db97525a.js
similarity index 98%
rename from assets/js/30cd2908.ddea4675.js
rename to assets/js/30cd2908.db97525a.js
index 3bbd1e1b3..8b8c9ccd9 100644
--- a/assets/js/30cd2908.ddea4675.js
+++ b/assets/js/30cd2908.db97525a.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[4616],{80843(e,n,s){s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>r,toc:()=>d});var r=s(57086),t=s(74848),i=s(28453);const a={slug:"partial-updates",title:"Understanding Partial Updates",authors:["giannis"],image:"./assets/partial_updates/banner.png"},o=void 0,l={image:s(93249).A,authorsImageUrls:[void 0]},d=[{value:"Partial Updates: A Different [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[4616],{80843(e,n,s){s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>r,toc:()=>d});var r=s(57086),t=s(74848),i=s(28453);const a={slug:"partial-updates",title:"Understanding Partial Updates",authors:["giannis"],image:"./assets/partial_updates/banner.png"},o=void 0,l={image:s(93249).A,authorsImageUrls:[void 0]},d=[{value:"Partial Updates: A Different [...]
\ No newline at end of file
diff --git a/assets/js/3258a04a.509ab7a8.js b/assets/js/3258a04a.ad395bc2.js
similarity index 98%
rename from assets/js/3258a04a.509ab7a8.js
rename to assets/js/3258a04a.ad395bc2.js
index e43e8dc10..898658f0c 100644
--- a/assets/js/3258a04a.509ab7a8.js
+++ b/assets/js/3258a04a.ad395bc2.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[7721],{37126(e,i,t){t.r(i),t.d(i,{assets:()=>a,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>n,toc:()=>c});var n=t(3169),s=t(74848),r=t(28453);const l={slug:"tiering-service",title:"Tiering Service Deep Dive",authors:["gyang94"],toc_max_heading_level:5},o="Tiering Service Deep Dive",a={authorsImageUrls:[void 0]},c=[{value:"Background",id:"background",level:2},{value:"Flin [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[7721],{37126(e,i,t){t.r(i),t.d(i,{assets:()=>a,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>n,toc:()=>c});var n=t(3169),s=t(74848),r=t(28453);const l={slug:"tiering-service",title:"Tiering Service Deep Dive",authors:["gyang94"],toc_max_heading_level:5},o="Tiering Service Deep Dive",a={authorsImageUrls:[void 0]},c=[{value:"Background",id:"background",level:2},{value:"Flin [...]
\ No newline at end of file
diff --git a/assets/js/3c7052ee.20d44885.js b/assets/js/3c7052ee.e1e6686a.js
similarity index 78%
rename from assets/js/3c7052ee.20d44885.js
rename to assets/js/3c7052ee.e1e6686a.js
index 76573832b..64f2cc56f 100644
--- a/assets/js/3c7052ee.20d44885.js
+++ b/assets/js/3c7052ee.e1e6686a.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[3503],{27614(e,t,a){a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>n,toc:()=>l});var n=a(15266),s=a(74848),i=a(28453);const o={slug:"fluss_fraud_detection",date:new Date("2026-02-01T00:00:00.000Z"),title:"A fraud detection pipeline with Streamhouse",authors:["jacopogardini"],toc_max_heading_level:5},r="A fraud detection pipeline with Streamhouse. [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[3503],{27614(e,t,a){a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>n,toc:()=>l});var n=a(15266),s=a(74848),i=a(28453);const o={slug:"fluss_fraud_detection",date:new Date("2026-02-01T00:00:00.000Z"),title:"A fraud detection pipeline with Streamhouse",authors:["jacopogardini"],toc_max_heading_level:5},r="A fraud detection pipeline with Streamhouse. [...]
\ No newline at end of file
diff --git a/assets/js/4337d25c.c9e6ba80.js b/assets/js/4337d25c.fda8f719.js
similarity index 76%
rename from assets/js/4337d25c.c9e6ba80.js
rename to assets/js/4337d25c.fda8f719.js
index e9089431e..35bed07d7 100644
--- a/assets/js/4337d25c.c9e6ba80.js
+++ b/assets/js/4337d25c.fda8f719.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[4980],{68266(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var s=n(3169),r=n(74848),i=n(28453);const a={slug:"tiering-service",title:"Tiering Service Deep Dive",authors:["gyang94"],toc_max_heading_level:5},o="Tiering Service Deep Dive",c={authorsImageUrls:[void 0]},l=[{value:"Background",id:"background",level:2}];function g( [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[4980],{68266(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>g,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var s=n(3169),r=n(74848),i=n(28453);const a={slug:"tiering-service",title:"Tiering Service Deep Dive",authors:["gyang94"],toc_max_heading_level:5},o="Tiering Service Deep Dive",c={authorsImageUrls:[void 0]},l=[{value:"Background",id:"background",level:2}];function u( [...]
\ No newline at end of file
diff --git a/assets/js/5142b284.a873b0f3.js b/assets/js/5142b284.f08a9f94.js
similarity index 86%
rename from assets/js/5142b284.a873b0f3.js
rename to assets/js/5142b284.f08a9f94.js
index 18e513850..11e78389b 100644
--- a/assets/js/5142b284.a873b0f3.js
+++ b/assets/js/5142b284.f08a9f94.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[8696],{18808(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>l});var s=n(66836),a=n(74848),o=n(28453);const r={slug:"fluss-open-source",title:"Fluss is Now Open Source",authors:["jark","giannis"]},i=void 0,c={authorsImageUrls:[void 0,void 0]},l=[];function u(e){const t={a:"a",img:"img",p:"p",strong:"strong",...(0,o.R)(),...e.compo [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[8696],{18808(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>l});var s=n(66836),a=n(74848),o=n(28453);const r={slug:"fluss-open-source",title:"Fluss is Now Open Source",authors:["jark","giannis"]},i=void 0,c={authorsImageUrls:[void 0,void 0]},l=[];function u(e){const t={a:"a",img:"img",p:"p",strong:"strong",...(0,o.R)(),...e.compo [...]
\ No newline at end of file
diff --git a/assets/js/516b0f79.7504e0f5.js b/assets/js/516b0f79.493f012b.js
similarity index 76%
rename from assets/js/516b0f79.7504e0f5.js
rename to assets/js/516b0f79.493f012b.js
index f7bbf4b26..3ce922098 100644
--- a/assets/js/516b0f79.7504e0f5.js
+++ b/assets/js/516b0f79.493f012b.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[2443],{75930(s){s.exports=JSON.parse('{"tag":{"label":"fluss-rust","permalink":"/blog/tags/fluss-rust","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/fluss-rust","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[2443],{75930(s){s.exports=JSON.parse('{"tag":{"label":"Fluss Rust","permalink":"/blog/tags/fluss-rust","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/fluss-rust","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/51a9489d.5e6699a6.js b/assets/js/51a9489d.5893e427.js
similarity index 93%
rename from assets/js/51a9489d.5e6699a6.js
rename to assets/js/51a9489d.5893e427.js
index 5a22934bd..bacdd6e78 100644
--- a/assets/js/51a9489d.5e6699a6.js
+++ b/assets/js/51a9489d.5893e427.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[2084],{70249(e,t,s){s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>n,toc:()=>h});var n=s(1467),a=s(74848),r=s(28453);const i={slug:"why-fluss-chose-rust-for-multi-language-sdk",title:"Why Apache Fluss Chose Rust for Its Multi-Language SDK",date:new Date("2026-04-09T00:00:00.000Z"),authors:["yuxia","keithlee","anton"],tags:["fluss-rust","fluss-rs" [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[2084],{70249(e,t,s){s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>n,toc:()=>h});var n=s(1467),a=s(74848),r=s(28453);const i={slug:"why-fluss-chose-rust-for-multi-language-sdk",title:"Why Apache Fluss Chose Rust for Its Multi-Language SDK",date:new Date("2026-04-09T00:00:00.000Z"),authors:["yuxia","keithlee","anton"],tags:["fluss-rust","fluss-rs" [...]
\ No newline at end of file
diff --git a/assets/js/52843a07.10c9159a.js b/assets/js/52843a07.8fa28d76.js
similarity index 79%
rename from assets/js/52843a07.10c9159a.js
rename to assets/js/52843a07.8fa28d76.js
index 0d5ef6719..cb0c6401a 100644
--- a/assets/js/52843a07.10c9159a.js
+++ b/assets/js/52843a07.8fa28d76.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[6053],{25226(a){a.exports=JSON.parse('{"tag":{"label":"arrow","permalink":"/blog/tags/arrow","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/arrow","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[6053],{25226(a){a.exports=JSON.parse('{"tag":{"label":"Arrow","permalink":"/blog/tags/arrow","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/arrow","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/539384a7.344ec43a.js b/assets/js/539384a7.e6a79bdb.js
similarity index 95%
rename from assets/js/539384a7.344ec43a.js
rename to assets/js/539384a7.e6a79bdb.js
index 4e22c4ed7..d0731c128 100644
--- a/assets/js/539384a7.344ec43a.js
+++ b/assets/js/539384a7.e6a79bdb.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[2291],{60718(e,n,s){s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var a=s(92462),t=s(74848),i=s(28453);const o={slug:"fluss-joins-asf",title:"Fluss Joins the Apache Incubator",sidebar_label:"Fluss Joins the Apache Incubator",authors:["jark"],image:"./assets/fluss_asf/asf.png"},r=void 0,l={image:s(89087).A,authorsImageUrls:[void 0]} [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[2291],{60718(e,n,s){s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var a=s(92462),t=s(74848),i=s(28453);const o={slug:"fluss-joins-asf",title:"Fluss Joins the Apache Incubator",sidebar_label:"Fluss Joins the Apache Incubator",authors:["jark"],image:"./assets/fluss_asf/asf.png"},r=void 0,l={image:s(89087).A,authorsImageUrls:[void 0]} [...]
\ No newline at end of file
diff --git a/assets/js/53e6ccc4.5af701f9.js b/assets/js/53e6ccc4.6bbeb547.js
similarity index 94%
rename from assets/js/53e6ccc4.5af701f9.js
rename to assets/js/53e6ccc4.6bbeb547.js
index 6170180a7..a3eb80263 100644
--- a/assets/js/53e6ccc4.5af701f9.js
+++ b/assets/js/53e6ccc4.6bbeb547.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[2809],{61404(e,t,s){s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>n,toc:()=>c});var n=s(66836),i=s(74848),a=s(28453);const r={slug:"fluss-open-source",title:"Fluss is Now Open Source",authors:["jark","giannis"]},o=void 0,l={authorsImageUrls:[void 0,void 0]},c=[{value:"Real-Time Streaming Storage for the Lakehouse Era",id:"real-time-streaming-sto [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[2809],{61404(e,t,s){s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>n,toc:()=>c});var n=s(66836),i=s(74848),a=s(28453);const r={slug:"fluss-open-source",title:"Fluss is Now Open Source",authors:["jark","giannis"]},o=void 0,l={authorsImageUrls:[void 0,void 0]},c=[{value:"Real-Time Streaming Storage for the Lakehouse Era",id:"real-time-streaming-sto [...]
\ No newline at end of file
diff --git a/assets/js/5eb2b302.e7dbc6cb.js b/assets/js/5eb2b302.b5039936.js
similarity index 98%
rename from assets/js/5eb2b302.e7dbc6cb.js
rename to assets/js/5eb2b302.b5039936.js
index 4a34e26c4..ae3867792 100644
--- a/assets/js/5eb2b302.e7dbc6cb.js
+++ b/assets/js/5eb2b302.b5039936.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[3766],{15039(e,i,n){n.r(i),n.d(i,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var s=n(68828),a=n(74848),t=n(28453);const r={slug:"unified-streaming-lakehouse",title:"Towards A Unified Streaming & Lakehouse Architecture",sidebar_label:"Toward Streaming Lakehouse",authors:["yuxia"]},o=void 0,l={authorsImageUrls:[void 0]},c=[{value:"Fluss Unified [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[3766],{15039(e,i,n){n.r(i),n.d(i,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var s=n(68828),a=n(74848),t=n(28453);const r={slug:"unified-streaming-lakehouse",title:"Towards A Unified Streaming & Lakehouse Architecture",sidebar_label:"Toward Streaming Lakehouse",authors:["yuxia"]},o=void 0,l={authorsImageUrls:[void 0]},c=[{value:"Fluss Unified [...]
\ No newline at end of file
diff --git a/assets/js/61e3d4cc.a31fb01f.js b/assets/js/61e3d4cc.b6e319b5.js
similarity index 96%
rename from assets/js/61e3d4cc.a31fb01f.js
rename to assets/js/61e3d4cc.b6e319b5.js
index 7a231791f..8c75a1081 100644
--- a/assets/js/61e3d4cc.a31fb01f.js
+++ b/assets/js/61e3d4cc.b6e319b5.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[9910],{32813(e,t,a){a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var i=a(87848),s=a(74848),n=a(28453);const r={slug:"fluss-intro",title:"Introducing Fluss: Streaming Storage for Real-Time Analytics",sidebar_label:"Introducing Fluss",authors:["jark"]},o=void 0,l={authorsImageUrls:[void 0]},c=[{value:"Key Features of Fluss",id:"key- [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[9910],{32813(e,t,a){a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var i=a(87848),s=a(74848),n=a(28453);const r={slug:"fluss-intro",title:"Introducing Fluss: Streaming Storage for Real-Time Analytics",sidebar_label:"Introducing Fluss",authors:["jark"]},o=void 0,l={authorsImageUrls:[void 0]},c=[{value:"Key Features of Fluss",id:"key- [...]
\ No newline at end of file
diff --git a/assets/js/687ff54f.4c4d8f07.js b/assets/js/687ff54f.78da9232.js
similarity index 82%
rename from assets/js/687ff54f.4c4d8f07.js
rename to assets/js/687ff54f.78da9232.js
index 623962dc5..f52adfc49 100644
--- a/assets/js/687ff54f.4c4d8f07.js
+++ b/assets/js/687ff54f.78da9232.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[9239],{38677(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var a=t(81039),s=t(74848),i=t(28453);const r={title:"Announcing Apache Fluss (Incubating) 0.8: Streaming Lakehouse for Data + AI",sidebar_label:"Announcing Apache Fluss 0.8",authors:["giannis","jark"],date:new Date("2025-11-09T00:00:00.000Z"),tags:["releases"]},o=voi [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[9239],{38677(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var a=t(81039),s=t(74848),i=t(28453);const r={title:"Announcing Apache Fluss (Incubating) 0.8: Streaming Lakehouse for Data + AI",sidebar_label:"Announcing Apache Fluss 0.8",authors:["giannis","jark"],date:new Date("2025-11-09T00:00:00.000Z"),tags:["releases"]},o=voi [...]
\ No newline at end of file
diff --git a/assets/js/6ada9c37.23907de4.js b/assets/js/6ada9c37.40e2c0f3.js
similarity index 80%
rename from assets/js/6ada9c37.23907de4.js
rename to assets/js/6ada9c37.40e2c0f3.js
index b35fb9634..debeb7e65 100644
--- a/assets/js/6ada9c37.23907de4.js
+++ b/assets/js/6ada9c37.40e2c0f3.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[3295],{15024(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>g,frontMatter:()=>o,metadata:()=>s,toc:()=>u});var s=t(14609),a=t(74848),i=t(28453);const o={slug:"why-fluss",title:"Why Fluss? Top 4 Challenges of Using Kafka for Real-Time Analytics",sidebar_label:"Why Fluss? Top 4 Challenges of Kafka",authors:["jark"]},r=void 0,l={authorsImageUrls:[void 0]},u=[];function c(e){ [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[3295],{15024(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>g,frontMatter:()=>o,metadata:()=>s,toc:()=>u});var s=t(14609),a=t(74848),i=t(28453);const o={slug:"why-fluss",title:"Why Fluss? Top 4 Challenges of Using Kafka for Real-Time Analytics",sidebar_label:"Why Fluss? Top 4 Challenges of Kafka",authors:["jark"]},r=void 0,l={authorsImageUrls:[void 0]},u=[];function c(e){ [...]
\ No newline at end of file
diff --git a/assets/js/6f951a55.cef6ae92.js b/assets/js/6f951a55.b33b2ea3.js
similarity index 98%
rename from assets/js/6f951a55.cef6ae92.js
rename to assets/js/6f951a55.b33b2ea3.js
index 6d255f50d..632d9cac2 100644
--- a/assets/js/6f951a55.cef6ae92.js
+++ b/assets/js/6f951a55.b33b2ea3.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[1477],{35862(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>t,toc:()=>c});var t=i(637),s=i(74848),a=i(28453);const r={title:"Announcing Fluss 0.7",authors:["jark"],date:new Date("2025-06-18T00:00:00.000Z"),tags:["releases"]},o=void 0,l={authorsImageUrls:[void 0]},c=[{value:"Stability Enhancements",id:"stability-enhancements",level:2},{valu [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[1477],{35862(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>t,toc:()=>c});var t=i(637),s=i(74848),a=i(28453);const r={title:"Announcing Fluss 0.7",authors:["jark"],date:new Date("2025-06-18T00:00:00.000Z"),tags:["releases"]},o=void 0,l={authorsImageUrls:[void 0]},c=[{value:"Stability Enhancements",id:"stability-enhancements",level:2},{valu [...]
\ No newline at end of file
diff --git a/assets/js/708a973e.81a77d75.js b/assets/js/708a973e.0e8adffc.js
similarity index 98%
rename from assets/js/708a973e.81a77d75.js
rename to assets/js/708a973e.0e8adffc.js
index e9b09e8b5..77d6975fe 100644
--- a/assets/js/708a973e.81a77d75.js
+++ b/assets/js/708a973e.0e8adffc.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[9803],{29115(e,s,n){n.r(s),n.d(s,{assets:()=>o,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var i=n(94579),t=n(74848),a=n(28453);const r={title:"Fluss \xd7 Iceberg (Part 1): Why Your Lakehouse Isn\u2019t a Streamhouse Yet",authors:["mehulbatra","yuxia"],date:new Date("2025-12-11T00:00:00.000Z"),tags:["streaming-lakehouse","apache-iceberg","real-time-analyti [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[9803],{29115(e,s,n){n.r(s),n.d(s,{assets:()=>o,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var i=n(94579),t=n(74848),a=n(28453);const r={title:"Fluss \xd7 Iceberg (Part 1): Why Your Lakehouse Isn\u2019t a Streamhouse Yet",authors:["mehulbatra","yuxia"],date:new Date("2025-12-11T00:00:00.000Z"),tags:["streaming-lakehouse","apache-iceberg","real-time-analyti [...]
\ No newline at end of file
diff --git a/assets/js/7144bb3b.8ed1e2e1.js b/assets/js/7144bb3b.6345336c.js
similarity index 86%
rename from assets/js/7144bb3b.8ed1e2e1.js
rename to assets/js/7144bb3b.6345336c.js
index 4e24ce7dd..3d115841e 100644
--- a/assets/js/7144bb3b.8ed1e2e1.js
+++ b/assets/js/7144bb3b.6345336c.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[192],{72872(e,n,s){s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>l,default:()=>h,frontMatter:()=>i,metadata:()=>t,toc:()=>c});var t=s(37206),a=s(74848),r=s(28453);const i={title:"Apache Fluss (Incubating) 0.9 Release Announcement",sidebar_label:"Announcing Apache Fluss 0.9",authors:["giannis","jark"],date:new Date("2026-03-02T00:00:00.000Z"),tags:["releases"]},l=void 0,o={authorsImageUrls:[v [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[192],{72872(e,n,s){s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>l,default:()=>h,frontMatter:()=>i,metadata:()=>t,toc:()=>c});var t=s(37206),a=s(74848),r=s(28453);const i={title:"Apache Fluss (Incubating) 0.9 Release Announcement",sidebar_label:"Announcing Apache Fluss 0.9",authors:["giannis","jark"],date:new Date("2026-03-02T00:00:00.000Z"),tags:["releases"]},l=void 0,o={authorsImageUrls:[v [...]
\ No newline at end of file
diff --git a/assets/js/7341f5c8.a2f273af.js b/assets/js/7341f5c8.4569b695.js
similarity index 96%
rename from assets/js/7341f5c8.a2f273af.js
rename to assets/js/7341f5c8.4569b695.js
index d704fa623..0acf5581b 100644
--- a/assets/js/7341f5c8.a2f273af.js
+++ b/assets/js/7341f5c8.4569b695.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[2394],{95604(e,a,i){i.r(a),i.d(a,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var s=i(14609),t=i(74848),n=i(28453);const r={slug:"why-fluss",title:"Why Fluss? Top 4 Challenges of Using Kafka for Real-Time Analytics",sidebar_label:"Why Fluss? Top 4 Challenges of Kafka",authors:["jark"]},o=void 0,l={authorsImageUrls:[void 0]},c=[{value:"Kafka Fa [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[2394],{95604(e,a,i){i.r(a),i.d(a,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var s=i(14609),t=i(74848),n=i(28453);const r={slug:"why-fluss",title:"Why Fluss? Top 4 Challenges of Using Kafka for Real-Time Analytics",sidebar_label:"Why Fluss? Top 4 Challenges of Kafka",authors:["jark"]},o=void 0,l={authorsImageUrls:[void 0]},c=[{value:"Kafka Fa [...]
\ No newline at end of file
diff --git a/assets/js/8e9d555c.3bf3964c.js b/assets/js/8e9d555c.c8763c84.js
similarity index 85%
rename from assets/js/8e9d555c.3bf3964c.js
rename to assets/js/8e9d555c.c8763c84.js
index c404d6850..89f710735 100644
--- a/assets/js/8e9d555c.3bf3964c.js
+++ b/assets/js/8e9d555c.c8763c84.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[8211],{23645(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var s=n(57086),a=n(74848),r=n(28453);const i={slug:"partial-updates",title:"Understanding Partial Updates",authors:["giannis"],image:"./assets/partial_updates/banner.png"},o=void 0,l={image:n(93249).A,authorsImageUrls:[void 0]},c=[];function d(e){const t={em:"em",img [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[8211],{23645(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var s=n(57086),a=n(74848),r=n(28453);const i={slug:"partial-updates",title:"Understanding Partial Updates",authors:["giannis"],image:"./assets/partial_updates/banner.png"},o=void 0,l={image:n(93249).A,authorsImageUrls:[void 0]},c=[];function d(e){const t={em:"em",img [...]
\ No newline at end of file
diff --git a/assets/js/92e114eb.409df272.js b/assets/js/92e114eb.18992fdd.js
similarity index 96%
rename from assets/js/92e114eb.409df272.js
rename to assets/js/92e114eb.18992fdd.js
index 41bc26119..94b1bfbd6 100644
--- a/assets/js/92e114eb.409df272.js
+++ b/assets/js/92e114eb.18992fdd.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[2681],{30787(e,n,a){a.r(n),a.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var i=a(81039),s=a(74848),t=a(28453);const r={title:"Announcing Apache Fluss (Incubating) 0.8: Streaming Lakehouse for Data + AI",sidebar_label:"Announcing Apache Fluss 0.8",authors:["giannis","jark"],date:new Date("2025-11-09T00:00:00.000Z"),tags:["releases"]},o=voi [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[2681],{30787(e,n,a){a.r(n),a.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var i=a(81039),s=a(74848),t=a(28453);const r={title:"Announcing Apache Fluss (Incubating) 0.8: Streaming Lakehouse for Data + AI",sidebar_label:"Announcing Apache Fluss 0.8",authors:["giannis","jark"],date:new Date("2025-11-09T00:00:00.000Z"),tags:["releases"]},o=voi [...]
\ No newline at end of file
diff --git a/assets/js/994319c2.3f8ee78e.js b/assets/js/994319c2.d7fccc02.js
similarity index 97%
rename from assets/js/994319c2.3f8ee78e.js
rename to assets/js/994319c2.d7fccc02.js
index a3820cf8f..eb87abe42 100644
--- a/assets/js/994319c2.3f8ee78e.js
+++ b/assets/js/994319c2.d7fccc02.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[5175],{37109(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var s=i(39485),t=i(74848),r=i(28453);const o={title:"Announcing Fluss 0.6",authors:["jark"],date:new Date("2025-03-10T00:00:00.000Z"),tags:["releases"]},a=void 0,l={authorsImageUrls:[void 0]},c=[{value:"Column Compression",id:"column-compression",level:2},{value:"Mer [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[5175],{37109(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var s=i(39485),t=i(74848),r=i(28453);const o={title:"Announcing Fluss 0.6",authors:["jark"],date:new Date("2025-03-10T00:00:00.000Z"),tags:["releases"]},a=void 0,l={authorsImageUrls:[void 0]},c=[{value:"Column Compression",id:"column-compression",level:2},{value:"Mer [...]
\ No newline at end of file
diff --git a/assets/js/9cd743c9.622c51a4.js b/assets/js/9cd743c9.1bef7dc6.js
similarity index 87%
rename from assets/js/9cd743c9.622c51a4.js
rename to assets/js/9cd743c9.1bef7dc6.js
index 5ae322836..5363da312 100644
--- a/assets/js/9cd743c9.622c51a4.js
+++ b/assets/js/9cd743c9.1bef7dc6.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[4311],{56401(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var s=t(68828),a=t(74848),i=t(28453);const r={slug:"unified-streaming-lakehouse",title:"Towards A Unified Streaming & Lakehouse Architecture",sidebar_label:"Toward Streaming Lakehouse",authors:["yuxia"]},o=void 0,l={authorsImageUrls:[void 0]},u=[];function c(e){const [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[4311],{56401(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var s=t(68828),a=t(74848),i=t(28453);const r={slug:"unified-streaming-lakehouse",title:"Towards A Unified Streaming & Lakehouse Architecture",sidebar_label:"Toward Streaming Lakehouse",authors:["yuxia"]},o=void 0,l={authorsImageUrls:[void 0]},u=[];function c(e){const [...]
\ No newline at end of file
diff --git a/assets/js/a046152e.958a3a46.js b/assets/js/a046152e.3805d71d.js
similarity index 98%
rename from assets/js/a046152e.958a3a46.js
rename to assets/js/a046152e.3805d71d.js
index 2635f5ed0..2bbb27425 100644
--- a/assets/js/a046152e.958a3a46.js
+++ b/assets/js/a046152e.3805d71d.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[3023],{46442(e,n,r){r.r(n),r.d(n,{assets:()=>o,contentTitle:()=>c,default:()=>h,frontMatter:()=>s,metadata:()=>a,toc:()=>l});var a=r(15266),t=r(74848),i=r(28453);const s={slug:"fluss_fraud_detection",date:new Date("2026-02-01T00:00:00.000Z"),title:"A fraud detection pipeline with Streamhouse",authors:["jacopogardini"],toc_max_heading_level:5},c="A fraud detection pipeline with Streamhouse. [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[3023],{46442(e,n,r){r.r(n),r.d(n,{assets:()=>o,contentTitle:()=>c,default:()=>h,frontMatter:()=>s,metadata:()=>a,toc:()=>l});var a=r(15266),t=r(74848),i=r(28453);const s={slug:"fluss_fraud_detection",date:new Date("2026-02-01T00:00:00.000Z"),title:"A fraud detection pipeline with Streamhouse",authors:["jacopogardini"],toc_max_heading_level:5},c="A fraud detection pipeline with Streamhouse. [...]
\ No newline at end of file
diff --git a/assets/js/a0c834e8.fbd48b92.js b/assets/js/a0c834e8.ee1f3b6d.js
similarity index 84%
rename from assets/js/a0c834e8.fbd48b92.js
rename to assets/js/a0c834e8.ee1f3b6d.js
index ced02bfd0..04d78f46d 100644
--- a/assets/js/a0c834e8.fbd48b92.js
+++ b/assets/js/a0c834e8.ee1f3b6d.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[6740],{1564(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>g,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var a=t(35284),s=t(74848),o=t(28453);const i={slug:"pk-key-tables-log-cache-streaming",date:new Date("2025-09-01T00:00:00.000Z"),title:"Primary Key Tables: Unifying Log and Cache for \ud83d\ude80 Streaming",authors:["giannis"]},r=void 0,l={authorsImageUrls:[void 0]},c [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[6740],{1564(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>g,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var a=t(35284),s=t(74848),o=t(28453);const i={slug:"pk-key-tables-log-cache-streaming",date:new Date("2025-09-01T00:00:00.000Z"),title:"Primary Key Tables: Unifying Log and Cache for \ud83d\ude80 Streaming",authors:["giannis"]},r=void 0,l={authorsImageUrls:[void 0]},c [...]
\ No newline at end of file
diff --git a/assets/js/aa40db63.2bde0e82.js b/assets/js/aa40db63.12ed9fd4.js
similarity index 77%
rename from assets/js/aa40db63.2bde0e82.js
rename to assets/js/aa40db63.12ed9fd4.js
index 6d82a4889..7aa97f127 100644
--- a/assets/js/aa40db63.2bde0e82.js
+++ b/assets/js/aa40db63.12ed9fd4.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[2418],{63835(e,a,n){n.r(a),n.d(a,{assets:()=>l,contentTitle:()=>r,default:()=>g,frontMatter:()=>s,metadata:()=>t,toc:()=>c});var t=n(76979),o=n(74848),i=n(28453);const s={slug:"taobao-practice",title:"How Taobao uses Apache Fluss (Incubating) for Real-Time Processing in Search and RecSys",sidebar_label:"Apache Fluss (Incubating) at Taobao",authors:["zhangxinyu","wanglilei"]},r=void 0,l={au [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[2418],{63835(e,a,n){n.r(a),n.d(a,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>s,metadata:()=>t,toc:()=>c});var t=n(76979),o=n(74848),i=n(28453);const s={slug:"taobao-practice",title:"How Taobao uses Apache Fluss (Incubating) for Real-Time Processing in Search and RecSys",sidebar_label:"Apache Fluss (Incubating) at Taobao",authors:["zhangxinyu","wanglilei"]},r=void 0,l={au [...]
\ No newline at end of file
diff --git a/assets/js/ab04c325.42e252af.js b/assets/js/ab04c325.7e01b981.js
similarity index 76%
rename from assets/js/ab04c325.42e252af.js
rename to assets/js/ab04c325.7e01b981.js
index 1a65020c4..417d1c99b 100644
--- a/assets/js/ab04c325.42e252af.js
+++ b/assets/js/ab04c325.7e01b981.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[4007],{98659(s){s.exports=JSON.parse('{"tag":{"label":"fluss-cpp","permalink":"/blog/tags/fluss-cpp","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/fluss-cpp","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[4007],{98659(s){s.exports=JSON.parse('{"tag":{"label":"Fluss C++","permalink":"/blog/tags/fluss-cpp","allTagsPath":"/blog/tags","count":2,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/fluss-cpp","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/b28be667.44ee72d5.js b/assets/js/b28be667.44ee72d5.js
deleted file mode 100644
index f4d574570..000000000
--- a/assets/js/b28be667.44ee72d5.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[2741],{79932(e,s,n){n.r(s),n.d(s,{assets:()=>h,contentTitle:()=>c,default:()=>p,frontMatter:()=>o,metadata:()=>a,toc:()=>d});const a=JSON.parse('{"id":"how-to-release/creating-a-fluss-release","title":"Creating a Fluss Release","description":"This documentation introduces about how to create a Fluss release.","source":"@site/community/how-to-release/creating-a-fluss-release.mdx","sourceDir [...]
\ No newline at end of file
diff --git a/assets/js/b28be667.cc316d51.js b/assets/js/b28be667.cc316d51.js
new file mode 100644
index 000000000..275070808
--- /dev/null
+++ b/assets/js/b28be667.cc316d51.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[2741],{79932(e,s,n){n.r(s),n.d(s,{assets:()=>h,contentTitle:()=>c,default:()=>p,frontMatter:()=>o,metadata:()=>a,toc:()=>d});const a=JSON.parse('{"id":"how-to-release/creating-a-fluss-release","title":"Creating a Fluss Release","description":"This documentation introduces about how to create a Fluss release.","source":"@site/community/how-to-release/creating-a-fluss-release.mdx","sourceDir [...]
\ No newline at end of file
diff --git a/assets/js/c018ef01.0c4dea67.js b/assets/js/c018ef01.e479dbd8.js
similarity index 78%
rename from assets/js/c018ef01.0c4dea67.js
rename to assets/js/c018ef01.e479dbd8.js
index 832d21496..fa6ec542d 100644
--- a/assets/js/c018ef01.0c4dea67.js
+++ b/assets/js/c018ef01.e479dbd8.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[4617],{1984(t,e,n){n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var o=n(6560),s=n(74848),r=n(28453);const l={slug:"unveil-fluss-logo",title:"The Story of Fluss Logo",authors:["jark"]},i=void 0,a={authorsImageUrls:[void 0]},u=[{value:"Introducing the Little Otter",id:"introducing-the-little-otter",level:2}];function c(t){const e={a [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[4617],{1984(t,e,n){n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var o=n(6560),s=n(74848),r=n(28453);const l={slug:"unveil-fluss-logo",title:"The Story of Fluss Logo",authors:["jark"]},i=void 0,a={authorsImageUrls:[void 0]},u=[{value:"Introducing the Little Otter",id:"introducing-the-little-otter",level:2}];function c(t){const e={a [...]
\ No newline at end of file
diff --git a/assets/js/c4b7cb01.0c64bad4.js b/assets/js/c4b7cb01.e95d3cc3.js
similarity index 97%
rename from assets/js/c4b7cb01.0c64bad4.js
rename to assets/js/c4b7cb01.e95d3cc3.js
index 97bea9b94..af92c27db 100644
--- a/assets/js/c4b7cb01.0c64bad4.js
+++ b/assets/js/c4b7cb01.e95d3cc3.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[9305],{99952(e,s,t){t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>h});var a=t(35284),n=t(74848),r=t(28453);const i={slug:"pk-key-tables-log-cache-streaming",date:new Date("2025-09-01T00:00:00.000Z"),title:"Primary Key Tables: Unifying Log and Cache for \ud83d\ude80 Streaming",authors:["giannis"]},o=void 0,l={authorsImageUrls:[void 0]}, [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[9305],{99952(e,s,t){t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>h});var a=t(35284),n=t(74848),r=t(28453);const i={slug:"pk-key-tables-log-cache-streaming",date:new Date("2025-09-01T00:00:00.000Z"),title:"Primary Key Tables: Unifying Log and Cache for \ud83d\ude80 Streaming",authors:["giannis"]},o=void 0,l={authorsImageUrls:[void 0]}, [...]
\ No newline at end of file
diff --git a/assets/js/ca48f0b2.ec92fe74.js b/assets/js/ca48f0b2.0bed3079.js
similarity index 87%
rename from assets/js/ca48f0b2.ec92fe74.js
rename to assets/js/ca48f0b2.0bed3079.js
index 3c4a9239c..9ce53ff34 100644
--- a/assets/js/ca48f0b2.ec92fe74.js
+++ b/assets/js/ca48f0b2.0bed3079.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[393],{65329(e,t,n){n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>l,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var s=n(43927),a=n(74848),o=n(28453);const i={slug:"fluss-for-ai",date:new Date("2026-03-05T00:00:00.000Z"),title:"What does Apache Fluss mean in the context of AI?",authors:["giannis"]},l=void 0,r={authorsImageUrls:[void 0]},c=[{value:"The Data Foundation for Real-Ti [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[393],{65329(e,t,n){n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>l,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var s=n(43927),a=n(74848),o=n(28453);const i={slug:"fluss-for-ai",date:new Date("2026-03-05T00:00:00.000Z"),title:"What does Apache Fluss mean in the context of AI?",authors:["giannis"]},l=void 0,r={authorsImageUrls:[void 0]},c=[{value:"The Data Foundation for Real-Ti [...]
\ No newline at end of file
diff --git a/assets/js/d5e40cee.713ed7ef.js b/assets/js/d5e40cee.9c03a5ba.js
similarity index 98%
rename from assets/js/d5e40cee.713ed7ef.js
rename to assets/js/d5e40cee.9c03a5ba.js
index 996bd5b50..7e676ebc4 100644
--- a/assets/js/d5e40cee.713ed7ef.js
+++ b/assets/js/d5e40cee.9c03a5ba.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[292],{2956(e,n,s){s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>l,default:()=>h,frontMatter:()=>t,metadata:()=>i,toc:()=>c});var i=s(37206),a=s(74848),r=s(28453);const t={title:"Apache Fluss (Incubating) 0.9 Release Announcement",sidebar_label:"Announcing Apache Fluss 0.9",authors:["giannis","jark"],date:new Date("2026-03-02T00:00:00.000Z"),tags:["releases"]},l=void 0,o={authorsImageUrls:[vo [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[292],{2956(e,n,s){s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>l,default:()=>h,frontMatter:()=>t,metadata:()=>i,toc:()=>c});var i=s(37206),a=s(74848),r=s(28453);const t={title:"Apache Fluss (Incubating) 0.9 Release Announcement",sidebar_label:"Announcing Apache Fluss 0.9",authors:["giannis","jark"],date:new Date("2026-03-02T00:00:00.000Z"),tags:["releases"]},l=void 0,o={authorsImageUrls:[vo [...]
\ No newline at end of file
diff --git a/assets/js/d87df568.545ef8be.js b/assets/js/d87df568.3c65236f.js
similarity index 92%
rename from assets/js/d87df568.545ef8be.js
rename to assets/js/d87df568.3c65236f.js
index 5bd0c6cfb..fe15bee55 100644
--- a/assets/js/d87df568.545ef8be.js
+++ b/assets/js/d87df568.3c65236f.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[6359],{36799(e,i,n){n.r(i),n.d(i,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>t,toc:()=>c});var t=n(23706),s=n(74848),a=n(28453);const o={slug:"roaringbitmap-uv-deduplication",date:new Date("2026-04-16T00:00:00.000Z"),title:"Real-Time Multi-Dimensional Unique Visitor Deduplication in Practice",authors:["yangwang"]},r=void 0,l={authorsImageUrls:[void 0]},c=[ [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[6359],{36799(e,i,n){n.r(i),n.d(i,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>t,toc:()=>c});var t=n(23706),s=n(74848),a=n(28453);const o={slug:"roaringbitmap-uv-deduplication",date:new Date("2026-04-16T00:00:00.000Z"),title:"Real-Time Multi-Dimensional Unique Visitor Deduplication in Practice",authors:["yangwang"]},r=void 0,l={authorsImageUrls:[void 0]},c=[ [...]
\ No newline at end of file
diff --git a/assets/js/d8b46579.2bbc888d.js b/assets/js/d8b46579.23ee713e.js
similarity index 86%
rename from assets/js/d8b46579.2bbc888d.js
rename to assets/js/d8b46579.23ee713e.js
index 34f877847..16743c6c7 100644
--- a/assets/js/d8b46579.2bbc888d.js
+++ b/assets/js/d8b46579.23ee713e.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[9382],{65466(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>g,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var s=t(637),r=t(74848),a=t(28453);const i={title:"Announcing Fluss 0.7",authors:["jark"],date:new Date("2025-06-18T00:00:00.000Z"),tags:["releases"]},o=void 0,l={authorsImageUrls:[void 0]},c=[];function u(e){const n={img:"img",p:"p",strong:"strong",...(0,a.R)(),...e [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[9382],{65466(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>g,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var s=t(637),r=t(74848),a=t(28453);const i={title:"Announcing Fluss 0.7",authors:["jark"],date:new Date("2025-06-18T00:00:00.000Z"),tags:["releases"]},o=void 0,l={authorsImageUrls:[void 0]},c=[];function u(e){const n={img:"img",p:"p",strong:"strong",...(0,a.R)(),...e [...]
\ No newline at end of file
diff --git a/assets/js/dbfc4782.0a2fe618.js b/assets/js/dbfc4782.0a2fe618.js
deleted file mode 100644
index 46a0f7d83..000000000
--- a/assets/js/dbfc4782.0a2fe618.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[8749],{91895(e){e.exports=JSON.parse('{"archive":{"blogPosts":[{"id":"roaringbitmap-uv-deduplication","metadata":{"permalink":"/blog/roaringbitmap-uv-deduplication","source":"@site/blog/2026-04-16-roaringbitmap-uv-deduplication.md","title":"Real-Time Multi-Dimensional Unique Visitor Deduplication in Practice","description":"UV (Unique Visitors) measures the count of distinct users who visi [...]
\ No newline at end of file
diff --git a/assets/js/dbfc4782.922bf57a.js b/assets/js/dbfc4782.922bf57a.js
new file mode 100644
index 000000000..4544eeecc
--- /dev/null
+++ b/assets/js/dbfc4782.922bf57a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[8749],{91895(e){e.exports=JSON.parse('{"archive":{"blogPosts":[{"id":"roaringbitmap-uv-deduplication","metadata":{"permalink":"/blog/roaringbitmap-uv-deduplication","source":"@site/blog/2026-04-16-roaringbitmap-uv-deduplication.md","title":"Real-Time Multi-Dimensional Unique Visitor Deduplication in Practice","description":"UV (Unique Visitors) measures the count of distinct users who visi [...]
\ No newline at end of file
diff --git a/assets/js/dd04b75e.3c2612ff.js b/assets/js/dd04b75e.3c2612ff.js
new file mode 100644
index 000000000..3f96e356b
--- /dev/null
+++ b/assets/js/dd04b75e.3c2612ff.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[1672],{33024(a){a.exports=JSON.parse('{"authors":[{"name":"Jark Wu","title":"PPMC member of Apache Fluss (Incubating)","url":"https://github.com/wuchong","imageURL":"/avatars/wuchong.png","key":"jark","page":null,"count":9},{"name":"Giannis Polyzos","title":"PPMC member of Apache Fluss (Incubating)","url":"https://github.com/polyzos","imageURL":"/avatars/polyzos.png","key":"giannis","page" [...]
\ No newline at end of file
diff --git a/assets/js/dd04b75e.f56c6d46.js b/assets/js/dd04b75e.f56c6d46.js
deleted file mode 100644
index d70116c26..000000000
--- a/assets/js/dd04b75e.f56c6d46.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[1672],{33024(a){a.exports=JSON.parse('{"authors":[{"name":"Jark Wu","title":"PPMC member of Apache Fluss (Incubating)","url":"https://github.com/wuchong","imageURL":"/img/avatars/wuchong.png","key":"jark","page":null,"count":9},{"name":"Giannis Polyzos","title":"PPMC member of Apache Fluss (Incubating)","url":"https://github.com/polyzos","imageURL":"/img/avatars/polyzos.png","key":"giannis [...]
\ No newline at end of file
diff --git a/assets/js/ed089b76.0d56fb59.js b/assets/js/ed089b76.cf060c50.js
similarity index 98%
rename from assets/js/ed089b76.0d56fb59.js
rename to assets/js/ed089b76.cf060c50.js
index 9360fc8ef..68c5fd13f 100644
--- a/assets/js/ed089b76.0d56fb59.js
+++ b/assets/js/ed089b76.cf060c50.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[8590],{22623(e,t,s){s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>d});var a=s(43927),n=s(74848),i=s(28453);const r={slug:"fluss-for-ai",date:new Date("2026-03-05T00:00:00.000Z"),title:"What does Apache Fluss mean in the context of AI?",authors:["giannis"]},o=void 0,l={authorsImageUrls:[void 0]},d=[{value:"The Data Foundation for Real-T [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[8590],{22623(e,t,s){s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>d});var a=s(43927),n=s(74848),i=s(28453);const r={slug:"fluss-for-ai",date:new Date("2026-03-05T00:00:00.000Z"),title:"What does Apache Fluss mean in the context of AI?",authors:["giannis"]},o=void 0,l={authorsImageUrls:[void 0]},d=[{value:"The Data Foundation for Real-T [...]
\ No newline at end of file
diff --git a/assets/js/ee7aa8c3.a55e4d44.js b/assets/js/ee7aa8c3.8f76634b.js
similarity index 87%
rename from assets/js/ee7aa8c3.a55e4d44.js
rename to assets/js/ee7aa8c3.8f76634b.js
index 004545251..749acf3a1 100644
--- a/assets/js/ee7aa8c3.a55e4d44.js
+++ b/assets/js/ee7aa8c3.8f76634b.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[1920],{67944(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var s=n(26399),a=n(74848),i=n(28453);const r={slug:"fluss-java-client",title:"Apache Fluss Java Client: A Deep Dive",authors:["giannis"]},o=void 0,l={authorsImageUrls:[void 0]},c=[{value:"Introduction",id:"introduction",level:2}];function u(e){const t={em:"em",h2:"h2 [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[1920],{67944(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var s=n(26399),a=n(74848),i=n(28453);const r={slug:"fluss-java-client",title:"Apache Fluss Java Client: A Deep Dive",authors:["giannis"]},o=void 0,l={authorsImageUrls:[void 0]},c=[{value:"Introduction",id:"introduction",level:2}];function u(e){const t={em:"em",h2:"h2 [...]
\ No newline at end of file
diff --git a/assets/js/f618cca1.042c863d.js b/assets/js/f618cca1.17d6180f.js
similarity index 98%
rename from assets/js/f618cca1.042c863d.js
rename to assets/js/f618cca1.17d6180f.js
index 4737ad3f4..12b0331d5 100644
--- a/assets/js/f618cca1.042c863d.js
+++ b/assets/js/f618cca1.17d6180f.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[616],{42745(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var i=t(76979),a=t(74848),s=t(28453);const r={slug:"taobao-practice",title:"How Taobao uses Apache Fluss (Incubating) for Real-Time Processing in Search and RecSys",sidebar_label:"Apache Fluss (Incubating) at Taobao",authors:["zhangxinyu","wanglilei"]},o=void 0,l={aut [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[616],{42745(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var i=t(76979),a=t(74848),s=t(28453);const r={slug:"taobao-practice",title:"How Taobao uses Apache Fluss (Incubating) for Real-Time Processing in Search and RecSys",sidebar_label:"Apache Fluss (Incubating) at Taobao",authors:["zhangxinyu","wanglilei"]},o=void 0,l={aut [...]
\ No newline at end of file
diff --git a/assets/js/f6ebaea3.73eb7e46.js b/assets/js/f6ebaea3.ae7f81bf.js
similarity index 97%
rename from assets/js/f6ebaea3.73eb7e46.js
rename to assets/js/f6ebaea3.ae7f81bf.js
index 23d2ea0c2..4c1de5fb5 100644
--- a/assets/js/f6ebaea3.73eb7e46.js
+++ b/assets/js/f6ebaea3.ae7f81bf.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[8472],{45556(e,n,s){s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>h,frontMatter:()=>l,metadata:()=>a,toc:()=>c});var a=s(34878),i=s(74848),t=s(28453);const l={slug:"hands-on-fluss-lakehouse",title:"From Stream to Lake: Hands-On with Fluss Tiering into Paimon on Minio",authors:["gyang94"],image:"./assets/hands_on_fluss_lakehouse/streamhouse.png",toc_max_heading_level:5},r="From [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[8472],{45556(e,n,s){s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>h,frontMatter:()=>l,metadata:()=>a,toc:()=>c});var a=s(34878),i=s(74848),t=s(28453);const l={slug:"hands-on-fluss-lakehouse",title:"From Stream to Lake: Hands-On with Fluss Tiering into Paimon on Minio",authors:["gyang94"],image:"./assets/hands_on_fluss_lakehouse/streamhouse.png",toc_max_heading_level:5},r="From [...]
\ No newline at end of file
diff --git a/assets/js/fa91aee9.52c3be75.js b/assets/js/fa91aee9.b10577a6.js
similarity index 99%
rename from assets/js/fa91aee9.52c3be75.js
rename to assets/js/fa91aee9.b10577a6.js
index ceff28696..8a954bb9c 100644
--- a/assets/js/fa91aee9.52c3be75.js
+++ b/assets/js/fa91aee9.b10577a6.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[1846],{92765(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>d});var a=i(23706),t=i(74848),s=i(28453);const r={slug:"roaringbitmap-uv-deduplication",date:new Date("2026-04-16T00:00:00.000Z"),title:"Real-Time Multi-Dimensional Unique Visitor Deduplication in Practice",authors:["yangwang"]},o=void 0,l={authorsImageUrls:[void 0]},d=[ [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[1846],{92765(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>d});var a=i(23706),t=i(74848),s=i(28453);const r={slug:"roaringbitmap-uv-deduplication",date:new Date("2026-04-16T00:00:00.000Z"),title:"Real-Time Multi-Dimensional Unique Visitor Deduplication in Practice",authors:["yangwang"]},o=void 0,l={authorsImageUrls:[void 0]},d=[ [...]
\ No newline at end of file
diff --git a/assets/js/ff2ceeff.1bd683bd.js b/assets/js/ff2ceeff.64175d1d.js
similarity index 83%
rename from assets/js/ff2ceeff.1bd683bd.js
rename to assets/js/ff2ceeff.64175d1d.js
index b730efe34..2a76ad629 100644
--- a/assets/js/ff2ceeff.1bd683bd.js
+++ b/assets/js/ff2ceeff.64175d1d.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[5228],{55351(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>s,toc:()=>u});var s=n(39485),o=n(74848),r=n(28453);const a={title:"Announcing Fluss 0.6",authors:["jark"],date:new Date("2025-03-10T00:00:00.000Z"),tags:["releases"]},i=void 0,l={authorsImageUrls:[void 0]},u=[];function c(e){const t={img:"img",p:"p",strong:"strong",...(0,r.R)(),.. [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[5228],{55351(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>s,toc:()=>u});var s=n(39485),o=n(74848),r=n(28453);const a={title:"Announcing Fluss 0.6",authors:["jark"],date:new Date("2025-03-10T00:00:00.000Z"),tags:["releases"]},i=void 0,l={authorsImageUrls:[void 0]},u=[];function c(e){const t={img:"img",p:"p",strong:"strong",...(0,r.R)(),.. [...]
\ No newline at end of file
diff --git a/assets/js/main.f86c048a.js b/assets/js/main.9d2d82c2.js
similarity index 76%
rename from assets/js/main.f86c048a.js
rename to assets/js/main.9d2d82c2.js
index 2de4c1a0b..940b539aa 100644
--- a/assets/js/main.f86c048a.js
+++ b/assets/js/main.9d2d82c2.js
@@ -1,2 +1,2 @@
-/*! For license information please see main.f86c048a.js.LICENSE.txt */
-(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[8792],{35947(e,t,n){"use strict";n.d(t,{A:()=>p});n(96540);var a=n(53259),o=n.n(a),r=n(84054);const i={"00666a83":[()=>n.e(7387).then(n.bind(n,22170)),"@site/versioned_docs/version-0.9/engine-flink/writes.md",22170],"0159e4b3":[()=>n.e(1838).then(n.bind(n,28605)),"@site/versioned_docs/version-0.6/maintenance/tiered-storage/lakehouse-storage.md",28605],"019059a8":[()=>n.e(4944).then(n.bind(n,83097)),"@s [...]
\ No newline at end of file
+/*! For license information please see main.9d2d82c2.js.LICENSE.txt */
+(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[8792],{35947(e,t,n){"use strict";n.d(t,{A:()=>p});n(96540);var a=n(53259),o=n.n(a),r=n(84054);const i={"00666a83":[()=>n.e(7387).then(n.bind(n,22170)),"@site/versioned_docs/version-0.9/engine-flink/writes.md",22170],"0159e4b3":[()=>n.e(1838).then(n.bind(n,28605)),"@site/versioned_docs/version-0.6/maintenance/tiered-storage/lakehouse-storage.md",28605],"019059a8":[()=>n.e(4944).then(n.bind(n,83097)),"@s [...]
\ No newline at end of file
diff --git a/assets/js/main.f86c048a.js.LICENSE.txt b/assets/js/main.9d2d82c2.js.LICENSE.txt
similarity index 100%
rename from assets/js/main.f86c048a.js.LICENSE.txt
rename to assets/js/main.9d2d82c2.js.LICENSE.txt
diff --git a/assets/js/runtime~main.46615272.js b/assets/js/runtime~main.014214b6.js
similarity index 87%
rename from assets/js/runtime~main.46615272.js
rename to assets/js/runtime~main.014214b6.js
index 7fa652900..c74c4d9a7 100644
--- a/assets/js/runtime~main.46615272.js
+++ b/assets/js/runtime~main.014214b6.js
@@ -1 +1 @@
-(()=>{"use strict";var e,a,d,c,f,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var d=t[e]={exports:{}};return b[e].call(d.exports,d,d.exports,r),d.exports}r.m=b,e=[],r.O=(a,d,c,f)=>{if(!d){var b=1/0;for(i=0;i<e.length;i++){for(var[d,c,f]=e[i],t=!0,o=0;o<d.length;o++)(!1&f||b>=f)&&Object.keys(r.O).every(e=>r.O[e](d[o]))?d.splice(o--,1):(t=!1,f<b&&(b=f));if(t){e.splice(i--,1);var n=c();void 0!==n&&(a=n)}}return a}f=f||0;for(var i=e.length;i>0&&e[i-1][2]>f;i--)e[i]=e[i-1 [...]
\ No newline at end of file
+(()=>{"use strict";var e,a,d,c,f,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var d=t[e]={exports:{}};return b[e].call(d.exports,d,d.exports,r),d.exports}r.m=b,e=[],r.O=(a,d,c,f)=>{if(!d){var b=1/0;for(i=0;i<e.length;i++){for(var[d,c,f]=e[i],t=!0,o=0;o<d.length;o++)(!1&f||b>=f)&&Object.keys(r.O).every(e=>r.O[e](d[o]))?d.splice(o--,1):(t=!1,f<b&&(b=f));if(t){e.splice(i--,1);var n=c();void 0!==n&&(a=n)}}return a}f=f||0;for(var i=e.length;i>0&&e[i-1][2]>f;i--)e[i]=e[i-1 [...]
\ No newline at end of file
diff --git a/avatars/fresh-borzoni.png b/avatars/fresh-borzoni.png
new file mode 100644
index 000000000..8024eeaf5
Binary files /dev/null and b/avatars/fresh-borzoni.png differ
diff --git a/avatars/gyang94.png b/avatars/gyang94.png
new file mode 100644
index 000000000..b73fa21f3
Binary files /dev/null and b/avatars/gyang94.png differ
diff --git a/avatars/jacopogardini.png b/avatars/jacopogardini.png
new file mode 100644
index 000000000..5a712c41d
Binary files /dev/null and b/avatars/jacopogardini.png differ
diff --git a/avatars/leekeiabstraction.png b/avatars/leekeiabstraction.png
new file mode 100644
index 000000000..6196699e6
Binary files /dev/null and b/avatars/leekeiabstraction.png differ
diff --git a/avatars/luoyuxia.png b/avatars/luoyuxia.png
new file mode 100644
index 000000000..1eb804078
Binary files /dev/null and b/avatars/luoyuxia.png differ
diff --git a/avatars/mehulbatra.png b/avatars/mehulbatra.png
new file mode 100644
index 000000000..712549e27
Binary files /dev/null and b/avatars/mehulbatra.png differ
diff --git a/avatars/polyzos.png b/avatars/polyzos.png
new file mode 100644
index 000000000..5f6e52757
Binary files /dev/null and b/avatars/polyzos.png differ
diff --git a/avatars/wanglilei.png b/avatars/wanglilei.png
new file mode 100644
index 000000000..601aa32a1
Binary files /dev/null and b/avatars/wanglilei.png differ
diff --git a/avatars/wuchong.png b/avatars/wuchong.png
new file mode 100644
index 000000000..60b7f730a
Binary files /dev/null and b/avatars/wuchong.png differ
diff --git a/avatars/yangwang.jpeg b/avatars/yangwang.jpeg
new file mode 100644
index 000000000..28bacdb34
Binary files /dev/null and b/avatars/yangwang.jpeg differ
diff --git a/avatars/zhangxinyu.png b/avatars/zhangxinyu.png
new file mode 100644
index 000000000..102d8eff1
Binary files /dev/null and b/avatars/zhangxinyu.png differ
diff --git a/blog/2025/12/02/fluss-x-iceberg-why-your-lakehouse-is-not-streamhouse-yet/index.html b/blog/2025/12/02/fluss-x-iceberg-why-your-lakehouse-is-not-streamhouse-yet/index.html
index 908441fbe..2f21ba505 100644
--- a/blog/2025/12/02/fluss-x-iceberg-why-your-lakehouse-is-not-streamhouse-yet/index.html
+++ b/blog/2025/12/02/fluss-x-iceberg-why-your-lakehouse-is-not-streamhouse-yet/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.10.0">
-<title data-rh="true">Fluss × Iceberg (Part 1): Why Your Lakehouse Isn’t a Streamhouse Yet | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png" [...]
+<title data-rh="true">Fluss × Iceberg (Part 1): Why Your Lakehouse Isn’t a Streamhouse Yet | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fluss™ (Incubating) Atom Feed">
@@ -15,14 +15,14 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.5187a663.css">
-<script src="/assets/js/runtime~main.46615272.js" defer="defer"></script>
-<script src="/assets/js/main.f86c048a.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.014214b6.js" defer="defer"></script>
+<script src="/assets/js/main.9d2d82c2.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
<p>Apache Fluss represents a new architectural approach: the <strong>Streamhouse</strong> for real-time lakehouses. Instead of stitching together separate streaming and batch systems, the Streamhouse unifies them under a single architecture. In this model, Apache Iceberg continues to serve exactly the role it was designed for: a highly efficient, scalable cold storage layer for analytics, while Fluss fills the missing piece: a hot streaming storage layer with sub-second latency, columnar [...]
<p>After working on Fluss–Iceberg lakehouse integration and deploying this architecture at a massive scale, including Alibaba's 3 PB production deployment processing 40 GB/s, we're ready to share the architectural lessons learned. Specifically, why existing systems fall short, how Fluss and Iceberg naturally complement each other, and what this means for finally building true real-time lakehouses.</p>
<p><img decoding="async" loading="lazy" alt="Banner" src="/assets/images/fluss-lakehouse-streaming_comp-62d4129ae29a5e1b5453892ae27cc212.png" width="768" height="336" class="img_ev3q"></p>
diff --git a/blog/archive/index.html b/blog/archive/index.html
index 436756f76..4c7adcc02 100644
--- a/blog/archive/index.html
+++ b/blog/archive/index.html
@@ -15,8 +15,8 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.5187a663.css">
-<script src="/assets/js/runtime~main.46615272.js" defer="defer"></script>
-<script src="/assets/js/main.f86c048a.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.014214b6.js" defer="defer"></script>
+<script src="/assets/js/main.9d2d82c2.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
diff --git a/blog/atom.xml b/blog/atom.xml
index 0f7c3fc05..40d28b0c2 100644
--- a/blog/atom.xml
+++ b/blog/atom.xml
@@ -246,11 +246,11 @@ On the project side, the community is working toward moving fluss-rust into the
<name>Anton Borisov</name>
<uri>https://github.com/fresh-borzoni</uri>
</author>
- <category label="fluss-rust" term="fluss-rust"/>
+ <category label="Fluss Rust" term="Fluss Rust"/>
<category label="fluss-rs" term="fluss-rs"/>
- <category label="pyfluss" term="pyfluss"/>
- <category label="fluss-cpp" term="fluss-cpp"/>
- <category label="arrow" term="arrow"/>
+ <category label="PyFluss" term="PyFluss"/>
+ <category label="Fluss C++" term="Fluss C++"/>
+ <category label="Arrow" term="Arrow"/>
</entry>
<entry>
<title type="html"><![CDATA[Announcing Apache Fluss (Incubating) Rust, Python, and C++ Client 0.1.0 Release]]></title>
@@ -319,11 +319,11 @@ See the <a href="https://clients.fluss.apache.org/user-guide/rust/example/partit
<uri>https://github.com/fresh-borzoni</uri>
</author>
<category label="releases" term="releases"/>
- <category label="fluss-rust" term="fluss-rust"/>
+ <category label="Fluss Rust" term="Fluss Rust"/>
<category label="fluss-rs" term="fluss-rs"/>
- <category label="pyfluss" term="pyfluss"/>
- <category label="fluss-cpp" term="fluss-cpp"/>
- <category label="arrow" term="arrow"/>
+ <category label="PyFluss" term="PyFluss"/>
+ <category label="Fluss C++" term="Fluss C++"/>
+ <category label="Arrow" term="Arrow"/>
</entry>
<entry>
<title type="html"><![CDATA[What does Apache Fluss mean in the context of AI?]]></title>
diff --git a/blog/authors/index.html b/blog/authors/index.html
index 9a3f00ee2..6d93b04e3 100644
--- a/blog/authors/index.html
+++ b/blog/authors/index.html
@@ -15,14 +15,14 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.5187a663.css">
-<script src="/assets/js/runtime~main.46615272.js" defer="defer"></script>
-<script src="/assets/js/main.f86c048a.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.014214b6.js" defer="defer"></script>
+<script src="/assets/js/main.9d2d82c2.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__d [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__d [...]
<p>Copyright © 2026 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.</p>
<p>Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p></div></div></div></footer></div>
</body>
diff --git a/blog/fluss-for-ai/index.html b/blog/fluss-for-ai/index.html
index a9931da34..87751e60a 100644
--- a/blog/fluss-for-ai/index.html
+++ b/blog/fluss-for-ai/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.10.0">
-<title data-rh="true">What does Apache Fluss mean in the context of AI? | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="tru [...]
+<title data-rh="true">What does Apache Fluss mean in the context of AI? | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="tru [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fluss™ (Incubating) Atom Feed">
@@ -15,14 +15,14 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.5187a663.css">
-<script src="/assets/js/runtime~main.46615272.js" defer="defer"></script>
-<script src="/assets/js/main.f86c048a.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.014214b6.js" defer="defer"></script>
+<script src="/assets/js/main.9d2d82c2.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
<p><img decoding="async" loading="lazy" src="/assets/images/banner-a3fa3c1c723340acae7046f86be1de82.png" width="1024" height="1024" class="img_ev3q">
<strong>Apache Fluss (Incubating) started as streaming storage for real-time analytics</strong>, built to work closely with stream processors like Apache Flink.
Its focus has always been on freshness, efficient analytical access, and continuous data, making fast-changing streams directly usable without forcing them
diff --git a/blog/fluss-intro/index.html b/blog/fluss-intro/index.html
index 4f3085f99..089fd7275 100644
--- a/blog/fluss-intro/index.html
+++ b/blog/fluss-intro/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.10.0">
-<title data-rh="true">Introducing Fluss: Streaming Storage for Real-Time Analytics | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta d [...]
+<title data-rh="true">Introducing Fluss: Streaming Storage for Real-Time Analytics | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta d [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fluss™ (Incubating) Atom Feed">
@@ -15,14 +15,14 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.5187a663.css">
-<script src="/assets/js/runtime~main.46615272.js" defer="defer"></script>
-<script src="/assets/js/main.f86c048a.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.014214b6.js" defer="defer"></script>
+<script src="/assets/js/main.9d2d82c2.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
Today, we are excited to introduce Fluss, a cutting-edge streaming storage system designed to power real-time analytics.
We are going to explore Fluss's architecture, design principles, key features, and how it addresses the challenges of using Kafka for real-time analytics.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="key-features-of-fluss">Key Features of Fluss<a href="#key-features-of-fluss" class="hash-link" aria-label="Direct link to Key Features of Fluss" title="Direct link to Key Features of Fluss" translate="no"></a></h2>
diff --git a/blog/fluss-java-client/index.html b/blog/fluss-java-client/index.html
index cca047de1..d14d64797 100644
--- a/blog/fluss-java-client/index.html
+++ b/blog/fluss-java-client/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.10.0">
-<title data-rh="true">Apache Fluss Java Client: A Deep Dive | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" property= [...]
+<title data-rh="true">Apache Fluss Java Client: A Deep Dive | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" property= [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fluss™ (Incubating) Atom Feed">
@@ -15,14 +15,14 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.5187a663.css">
-<script src="/assets/js/runtime~main.46615272.js" defer="defer"></script>
-<script src="/assets/js/main.f86c048a.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.014214b6.js" defer="defer"></script>
+<script src="/assets/js/main.9d2d82c2.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="introduction">Introduction<a href="#introduction" class="hash-link" aria-label="Direct link to Introduction" title="Direct link to Introduction" translate="no"></a></h2>
<p>Apache Fluss is a streaming data storage system built for real-time analytics, serving as a low-latency data layer in modern data Lakehouses.
It supports sub-second streaming reads and writes, storing data in a columnar format for efficiency, and offers two flexible table types: <strong>append-only Log Tables</strong> and <strong>updatable Primary Key Tables</strong>.
diff --git a/blog/fluss-joins-asf/index.html b/blog/fluss-joins-asf/index.html
index 558766f8c..f468e9ba1 100644
--- a/blog/fluss-joins-asf/index.html
+++ b/blog/fluss-joins-asf/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.10.0">
-<title data-rh="true">Fluss Joins the Apache Incubator | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://fluss.apache.org/blog/fluss-joins-asf/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_ [...]
+<title data-rh="true">Fluss Joins the Apache Incubator | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://fluss.apache.org/blog/fluss-joins-asf/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_ [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fluss™ (Incubating) Atom Feed">
@@ -15,14 +15,14 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.5187a663.css">
-<script src="/assets/js/runtime~main.46615272.js" defer="defer"></script>
-<script src="/assets/js/main.f86c048a.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.014214b6.js" defer="defer"></script>
+<script src="/assets/js/main.9d2d82c2.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
neutral, and standardized. Moving forward, Fluss will leverage the ASF ecosystem to accelerate the building of a global developer community, continuously driving innovation and adoption of next-generation real-time data infrastructure.</p>
<p><img decoding="async" loading="lazy" alt="ASF" src="/assets/images/asf-0621eab6f6aadbdfebfc5e24a36667c1.png" width="1231" height="631" class="img_ev3q"></p>
<p>The Fluss community has recently completed all donation procedures and successfully transferred the project to the Apache Software Foundation.
diff --git a/blog/fluss-open-source/index.html b/blog/fluss-open-source/index.html
index eac5c7739..b69ae4693 100644
--- a/blog/fluss-open-source/index.html
+++ b/blog/fluss-open-source/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.10.0">
-<title data-rh="true">Fluss is Now Open Source | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" property="og:url" cont [...]
+<title data-rh="true">Fluss is Now Open Source | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" property="og:url" cont [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fluss™ (Incubating) Atom Feed">
@@ -15,14 +15,14 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.5187a663.css">
-<script src="/assets/js/runtime~main.46615272.js" defer="defer"></script>
-<script src="/assets/js/main.f86c048a.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.014214b6.js" defer="defer"></script>
+<script src="/assets/js/main.9d2d82c2.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
Fluss is a <strong>streaming storage system</strong> designed to power real-time analytics. It aspires to change how organizations approach real-time data by acting as the <strong>real-time data layer</strong> for the Lakehouse.
Its cutting-edge design enables businesses to achieve <strong>sub-second latency</strong>, <strong>high throughput</strong>, and <strong>cost efficiency</strong> for data analytics, making it the ideal solution for modern data-driven applications.</p>
<p>We have historically invested a lot of effort into advancing the data streaming ecosystem, being major contributors to <a href="https://flink.apache.org/" target="_blank" rel="noopener noreferrer" class="">Apache Flink®</a>, <a href="https://www.ververica.com/blog/ververica-donates-flink-cdc-empowering-real-time-data-integration-for-the-community" target="_blank" rel="noopener noreferrer" class="">Apache Flink CDC</a>, and <a href="https://paimon.apache.org/" target="_blank" rel="noop [...]
diff --git a/blog/fluss_fraud_detection/index.html b/blog/fluss_fraud_detection/index.html
index 3c2670e31..b492d6e19 100644
--- a/blog/fluss_fraud_detection/index.html
+++ b/blog/fluss_fraud_detection/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.10.0">
-<title data-rh="true">A fraud detection pipeline with Streamhouse | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" pro [...]
+<title data-rh="true">A fraud detection pipeline with Streamhouse | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" pro [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fluss™ (Incubating) Atom Feed">
@@ -15,14 +15,14 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.5187a663.css">
-<script src="/assets/js/runtime~main.46615272.js" defer="defer"></script>
-<script src="/assets/js/main.f86c048a.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.014214b6.js" defer="defer"></script>
+<script src="/assets/js/main.9d2d82c2.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
<p>Fraud detection is a mission-critical capability for businesses operating in financial services, e-commerce, and digital payments. Detecting suspicious transactions in real time can prevent significant losses and protect customers. This blog demonstrates how to build a streamhouse that processes bank transactions in real time, detects fraud, and serves data seamlessly across hot (sub‑second latency) and cold (minutes‑latency) layers.
Real-time detection and historical analytics are combined, enabling businesses to act quickly while maintaining a complete audit trail.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="streamhouse-architecture">Streamhouse Architecture<a href="#streamhouse-architecture" class="hash-link" aria-label="Direct link to Streamhouse Architecture" title="Direct link to Streamhouse Architecture" translate="no"></a></h2>
diff --git a/blog/fluss_rust_client_release/index.html b/blog/fluss_rust_client_release/index.html
index 56936a344..b0d874f22 100644
--- a/blog/fluss_rust_client_release/index.html
+++ b/blog/fluss_rust_client_release/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.10.0">
-<title data-rh="true">Announcing Apache Fluss (Incubating) Rust, Python, and C++ Client 0.1.0 Release | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://fluss.apache.org/blog/fluss_rust_client_release/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_lo [...]
+<title data-rh="true">Announcing Apache Fluss (Incubating) Rust, Python, and C++ Client 0.1.0 Release | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://fluss.apache.org/blog/fluss_rust_client_release/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_lo [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fluss™ (Incubating) Atom Feed">
@@ -15,14 +15,14 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.5187a663.css">
-<script src="/assets/js/runtime~main.46615272.js" defer="defer"></script>
-<script src="/assets/js/main.f86c048a.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.014214b6.js" defer="defer"></script>
+<script src="/assets/js/main.9d2d82c2.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
<p>We are excited to announce the release of <a href="https://github.com/apache/fluss-rust" target="_blank" rel="noopener noreferrer" class="">fluss-rust clients</a> 0.1.0, the first official release of the <a href="https://clients.fluss.apache.org/user-guide/rust/installation" target="_blank" rel="noopener noreferrer" class="">Rust</a>, <a href="https://clients.fluss.apache.org/user-guide/python/installation" target="_blank" rel="noopener noreferrer" class="">Python</a>, and <a href="ht [...]
<p>Under the hood, all three clients share a single Rust core that handles protocol negotiation, batching, retries, and <a href="https://arrow.apache.org/" target="_blank" rel="noopener noreferrer" class="">Apache Arrow</a>-based data exchange, with thin language-specific bindings on top. This was a deliberate community decision to deliver native performance and feature parity across every language from day one.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="highlights">Highlights<a href="#highlights" class="hash-link" aria-label="Direct link to Highlights" title="Direct link to Highlights" translate="no"></a></h2>
@@ -69,7 +69,7 @@ See the <a href="https://clients.fluss.apache.org/user-guide/rust/example/partit
<li class="">Website: <a href="https://fluss.apache.org/" target="_blank" rel="noopener noreferrer" class="">https://fluss.apache.org/</a></li>
<li class="">Mailing List: <a href="https://fluss.apache.org/community/welcome/#mailing-lists" target="_blank" rel="noopener noreferrer" class="">https://fluss.apache.org/community/welcome/#mailing-lists</a></li>
<li class="">Slack: <a href="https://apache-fluss.slack.com" target="_blank" rel="noopener noreferrer" class="">https://apache-fluss.slack.com</a></li>
-</ul></div><footer class="docusaurus-mt-lg"><div class="row margin-top--sm theme-blog-footer-edit-meta-row"><div class="col"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a rel="tag" title="Content related release announcement." class="tag_zVej tagRegular_sFm0" href="/blog/tags/releases/">releases</a></li><li class="tag_QGVx"><a rel="tag" class="tag_zVej tagRegular_sFm0" href="/blog/tags/fluss-rust/">fluss-rust</a></li><li class="tag_QGVx"><a rel=" [...]
+</ul></div><footer class="docusaurus-mt-lg"><div class="row margin-top--sm theme-blog-footer-edit-meta-row"><div class="col"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a rel="tag" title="Content related release announcement." class="tag_zVej tagRegular_sFm0" href="/blog/tags/releases/">releases</a></li><li class="tag_QGVx"><a rel="tag" class="tag_zVej tagRegular_sFm0" href="/blog/tags/fluss-rust/">Fluss Rust</a></li><li class="tag_QGVx"><a rel=" [...]
<p>Copyright © 2026 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.</p>
<p>Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p></div></div></div></footer></div></div>
</body>
diff --git a/blog/hands-on-fluss-lakehouse/index.html b/blog/hands-on-fluss-lakehouse/index.html
index 0159579be..b3beb8f53 100644
--- a/blog/hands-on-fluss-lakehouse/index.html
+++ b/blog/hands-on-fluss-lakehouse/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.10.0">
-<title data-rh="true">From Stream to Lake: Hands-On with Fluss Tiering into Paimon on Minio | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://fluss.apache.org/blog/hands-on-fluss-lakehouse/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" conte [...]
+<title data-rh="true">From Stream to Lake: Hands-On with Fluss Tiering into Paimon on Minio | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://fluss.apache.org/blog/hands-on-fluss-lakehouse/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" conte [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fluss™ (Incubating) Atom Feed">
@@ -15,14 +15,14 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.5187a663.css">
-<script src="/assets/js/runtime~main.46615272.js" defer="defer"></script>
-<script src="/assets/js/main.f86c048a.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.014214b6.js" defer="defer"></script>
+<script src="/assets/js/main.9d2d82c2.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
<p><img decoding="async" loading="lazy" src="/assets/images/streamhouse-7b7f1260fc996ca89b50dbb9454584ab.png" width="3057" height="1237" class="img_ev3q"></p>
<p>In this hands-on tutorial, we'll walk you through setting up a local Fluss lakehouse environment, running some practical data operations, and getting first-hand experience with the complete Fluss lakehouse architecture. By the end, you'll have a working environment for experimenting with Fluss's powerful data processing capabilities.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="integrate-with-paimon-minio-lakehouse">Integrate with Paimon Minio Lakehouse<a href="#integrate-with-paimon-minio-lakehouse" class="hash-link" aria-label="Direct link to Integrate with Paimon Minio Lakehouse" title="Direct link to Integrate with Paimon Minio Lakehouse" translate="no"></a></h2>
diff --git a/blog/index.html b/blog/index.html
index 17fef6d0a..334d644a6 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.10.0">
-<title data-rh="true">Blog | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" property="og:url" content="https://fluss.a [...]
+<title data-rh="true">Blog | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" property="og:url" content="https://fluss.a [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fluss™ (Incubating) Atom Feed">
@@ -15,14 +15,14 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.5187a663.css">
-<script src="/assets/js/runtime~main.46615272.js" defer="defer"></script>
-<script src="/assets/js/main.f86c048a.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.014214b6.js" defer="defer"></script>
+<script src="/assets/js/main.9d2d82c2.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__d [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__d [...]
The full combination of four dimensions means <strong>16 grouping methods</strong>; when the dimension count increases to seven, the number of possible groupings reaches <strong>128</strong>.</p>
<p>How can multi-dimensional deduplication be both accurate and flexible while maintaining real-time performance? Behind this challenge lie two very different computing paradigms: direct deduplication of raw data, or set operations based on bitmaps.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="problems-with-traditional-deduplication-schemes">Problems with Traditional Deduplication Schemes<a href="#problems-with-traditional-deduplication-schemes" class="hash-link" aria-label="Direct link to Problems with Traditional Deduplication Schemes" title="Direct link to Problems with Traditional Deduplication Schemes" translate="no"></a></h2>
@@ -31,13 +31,13 @@ The full combination of four dimensions means <strong>16 grouping methods</stron
<p><strong>Performance increases linearly with the amount of data.</strong> Each dimension combination needs to independently store all user identities that have occurred. When daily page view logs reach billions and distinct users number in the tens or hundreds of millions, each group's hash set demands significant memory and CPU for insertion and lookup. Total compute cost scales with the product of dimension combinations and data volume, which is especially noticeable during peak [...]
<p><strong>Multidimensional extensibility is limited.</strong> If an analyst needs UV by <strong>Channel x City</strong> and <strong>Channel x Date</strong>, the traditional scheme must calculate two separate deduplication results. The existing <strong>Channel x City</strong> result cannot be rolled up to get the <strong>Channel</strong>-level UV, because user sets across cities may overlap and simple summation leads to double counting. With each additional dimension, the computational t [...]
<p><strong>Insufficient query flexibility.</strong> Pre-aggregation schemes must fix dimension combinations in advance. When a business team needs a new dimension on the fly (such as adding <strong>device type</strong>), adjusting the entire data processing pipeline is often required instead of simply modifying a query.</p>
-<p>These three limitations share a root cause: storing and computing on raw user identities at every dimension combination does not scale.</p></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about Real-Time Multi-Dimensional Unique Visitor Deduplication in Practice" href="/blog/roaringbitmap-uv-deduplication/"><b>Read more</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="title_f1Hy"><a href="/blog/why-fl [...]
+<p>These three limitations share a root cause: storing and computing on raw user identities at every dimension combination does not scale.</p></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about Real-Time Multi-Dimensional Unique Visitor Deduplication in Practice" href="/blog/roaringbitmap-uv-deduplication/"><b>Read more</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="title_f1Hy"><a href="/blog/why-fl [...]
<p>If you maintain a data system that only speaks Java, you will eventually hear from someone who doesn't. A Python team building a feature store. A C++ service that needs sub-millisecond writes. An AI agent that wants to call your system through a tool binding. They all need the same capabilities (writes, reads, lookups) and none of them want to spin up a JVM to get them.</p>
<p>Apache Fluss, streaming storage for real-time analytics and AI, hit this exact inflection point. The <a class="" href="/blog/fluss-java-client/">Java client</a> works well for Flink-based compute, where the JVM is already the world you live in. But outside that world, asking consumers to run a JVM sidecar just to write a record or look up a key creates friction that compounds across every service, every pipeline, every agent in the stack.</p>
<p>We could have written a separate client for each language. Maintain five copies of the wire protocol, five implementations of the batching logic, five sets of retry semantics and idempotence tracking. That path scales linearly with languages and ends predictably: the Java client gets features first, the Python client gets them six months later with slightly different edge-case behavior, and the C++ client is perpetually "almost done."</p>
-<p>We took a different path and tried to leverage the lessons of the great.</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a rel="tag" class="tag_zVej tagRegular_sFm0" href="/blog/tags/fluss-rust/">fluss-rust</a></li><li class="tag_QGVx"><a rel="tag" class="tag_zVej tagRegular_sFm0" href="/blog/tags/fluss-rs/">fluss-rs</a></li><li class="tag_QGVx"><a rel="tag" class="tag_zVej tagR [...]
+<p>We took a different path and tried to leverage the lessons of the great.</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a rel="tag" class="tag_zVej tagRegular_sFm0" href="/blog/tags/fluss-rust/">Fluss Rust</a></li><li class="tag_QGVx"><a rel="tag" class="tag_zVej tagRegular_sFm0" href="/blog/tags/fluss-rs/">fluss-rs</a></li><li class="tag_QGVx"><a rel="tag" class="tag_zVej tagR [...]
<p>We are excited to announce the release of <a href="https://github.com/apache/fluss-rust" target="_blank" rel="noopener noreferrer" class="">fluss-rust clients</a> 0.1.0, the first official release of the <a href="https://clients.fluss.apache.org/user-guide/rust/installation" target="_blank" rel="noopener noreferrer" class="">Rust</a>, <a href="https://clients.fluss.apache.org/user-guide/python/installation" target="_blank" rel="noopener noreferrer" class="">Python</a>, and <a href="ht [...]
-<p>Under the hood, all three clients share a single Rust core that handles protocol negotiation, batching, retries, and <a href="https://arrow.apache.org/" target="_blank" rel="noopener noreferrer" class="">Apache Arrow</a>-based data exchange, with thin language-specific bindings on top. This was a deliberate community decision to deliver native performance and feature parity across every language from day one.</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tag [...]
+<p>Under the hood, all three clients share a single Rust core that handles protocol negotiation, batching, retries, and <a href="https://arrow.apache.org/" target="_blank" rel="noopener noreferrer" class="">Apache Arrow</a>-based data exchange, with thin language-specific bindings on top. This was a deliberate community decision to deliver native performance and feature parity across every language from day one.</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tag [...]
<p><img decoding="async" loading="lazy" src="/assets/images/banner-a3fa3c1c723340acae7046f86be1de82.png" width="1024" height="1024" class="img_ev3q">
<strong>Apache Fluss (Incubating) started as streaming storage for real-time analytics</strong>, built to work closely with stream processors like Apache Flink.
Its focus has always been on freshness, efficient analytical access, and continuous data, making fast-changing streams directly usable without forcing them
@@ -48,7 +48,7 @@ through batch-oriented systems or log-only pipelines.</p>
<blockquote>
<p>What does a data foundation need to look like to support real-time intelligent systems reliably at scale?</p>
</blockquote>
-<p>The rest of this post answers that question. We’ll explain what AI means when viewed through the lens of Apache Fluss, and why a streaming-first foundation for features, context, and state is central to building the next generation of intelligent systems.</p></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about What does Apache Fluss mean in the context of AI?" href="/blog/fluss-for-ai/"><b>Read more</b></a></div></footer></article><art [...]
+<p>The rest of this post answers that question. We’ll explain what AI means when viewed through the lens of Apache Fluss, and why a streaming-first foundation for features, context, and state is central to building the next generation of intelligent systems.</p></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about What does Apache Fluss mean in the context of AI?" href="/blog/fluss-for-ai/"><b>Read more</b></a></div></footer></article><art [...]
<p>🌊 We are excited to announce the official release of <strong>Apache Fluss (Incubating) 0.9</strong>!</p>
<p>This release marks a major milestone for the project. Fluss 0.9 significantly expands Fluss’s capabilities as a <strong>streaming storage system for real-time analytics, AI, and state-heavy streaming workloads</strong>, with a strong focus on:</p>
<ul>
@@ -70,12 +70,12 @@ through batch-oriented systems or log-only pipelines.</p>
<li class=""><strong>Operationally robust clusters</strong> with automatic rebalancing and safer maintenance workflows</li>
<li class=""><strong>Apache Spark integration</strong>, enabling unified batch and streaming analytics on Fluss</li>
<li class=""><strong>First-class Azure support</strong>, allowing Fluss to tier and operate seamlessly on Azure Blob Storage and ADLS Gen2</li>
-</ul></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a rel="tag" title="Content related release announcement." class="tag_zVej tagRegular_sFm0" href="/blog/tags/releases/">releases</a></li></ul></div><div class="col text--right col--3"><a aria-label="Read more about Apache Fluss (Incubating) 0.9 Release Announcement" href="/blog/releases/0.9/"><b>Read more</b></a></div></footer></arti [...]
+</ul></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a rel="tag" title="Content related release announcement." class="tag_zVej tagRegular_sFm0" href="/blog/tags/releases/">releases</a></li></ul></div><div class="col text--right col--3"><a aria-label="Read more about Apache Fluss (Incubating) 0.9 Release Announcement" href="/blog/releases/0.9/"><b>Read more</b></a></div></footer></arti [...]
<p>Fraud detection is a mission-critical capability for businesses operating in financial services, e-commerce, and digital payments. Detecting suspicious transactions in real time can prevent significant losses and protect customers. This blog demonstrates how to build a streamhouse that processes bank transactions in real time, detects fraud, and serves data seamlessly across hot (sub‑second latency) and cold (minutes‑latency) layers.
-Real-time detection and historical analytics are combined, enabling businesses to act quickly while maintaining a complete audit trail.</p></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about A fraud detection pipeline with Streamhouse" href="/blog/fluss_fraud_detection/"><b>Read more</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="title_f1Hy"><a href="/blog/2025/12/02/fluss-x-iceberg-why-your-lakehou [...]
+Real-time detection and historical analytics are combined, enabling businesses to act quickly while maintaining a complete audit trail.</p></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about A fraud detection pipeline with Streamhouse" href="/blog/fluss_fraud_detection/"><b>Read more</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="title_f1Hy"><a href="/blog/2025/12/02/fluss-x-iceberg-why-your-lakehou [...]
<p>Apache Fluss represents a new architectural approach: the <strong>Streamhouse</strong> for real-time lakehouses. Instead of stitching together separate streaming and batch systems, the Streamhouse unifies them under a single architecture. In this model, Apache Iceberg continues to serve exactly the role it was designed for: a highly efficient, scalable cold storage layer for analytics, while Fluss fills the missing piece: a hot streaming storage layer with sub-second latency, columnar [...]
<p>After working on Fluss–Iceberg lakehouse integration and deploying this architecture at a massive scale, including Alibaba's 3 PB production deployment processing 40 GB/s, we're ready to share the architectural lessons learned. Specifically, why existing systems fall short, how Fluss and Iceberg naturally complement each other, and what this means for finally building true real-time lakehouses.</p>
-<p><img decoding="async" loading="lazy" alt="Banner" src="/assets/images/fluss-lakehouse-streaming_comp-62d4129ae29a5e1b5453892ae27cc212.png" width="768" height="336" class="img_ev3q"></p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a rel="tag" class="tag_zVej tagRegular_sFm0" href="/blog/tags/streaming-lakehouse/">Streaming Lakehouse</a></li><li class="tag_QGVx"><a rel="tag" class [...]
+<p><img decoding="async" loading="lazy" alt="Banner" src="/assets/images/fluss-lakehouse-streaming_comp-62d4129ae29a5e1b5453892ae27cc212.png" width="768" height="336" class="img_ev3q"></p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a rel="tag" class="tag_zVej tagRegular_sFm0" href="/blog/tags/streaming-lakehouse/">Streaming Lakehouse</a></li><li class="tag_QGVx"><a rel="tag" class [...]
<p>🌊 We are excited to announce the official release of <strong>Apache Fluss (Incubating) 0.8</strong>!</p>
<p>This is our first release under the incubator of the Apache Software Foundation, marking a significant milestone in our journey to provide a robust streaming storage platform for real-time analytics.</p>
<p>Over the past four months, the community has made tremendous progress, delivering nearly 400 commits that push the boundaries of the Streaming Lakehouse ecosystem. This release includes multiple stability optimizations and introduces deeper integrations, performance breakthroughs, and next-generation stream processing capabilities. Highlights:</p>
@@ -85,7 +85,7 @@ Real-time detection and historical analytics are combined, enabling businesses t
<li class="">🔧 Supports hot updates for both cluster configurations and table configurations</li>
</ul>
<p>Apache Fluss 0.8 marks the beginning of a new era in streaming:
-<strong>real-time</strong>, <strong>unified</strong>, and <strong>zero-state</strong>, purpose-built to power the next generation of data platforms with <strong>low-latency performance</strong>, <strong>scalability</strong>, and <strong>architectural simplicity</strong>.</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a rel="tag" title="Content related release announcement." class= [...]
+<strong>real-time</strong>, <strong>unified</strong>, and <strong>zero-state</strong>, purpose-built to power the next generation of data platforms with <strong>low-latency performance</strong>, <strong>scalability</strong>, and <strong>architectural simplicity</strong>.</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a rel="tag" title="Content related release announcement." class= [...]
Common architectures include combinations such as Kafka with Redis, or Debezium feeding changes into a key-value store.
While these patterns underpin a significant portion of production infrastructure, they also introduce <strong>complexity</strong>, <strong>fragility</strong>, and <strong>operational overhead</strong>.</p>
<p>Apache Fluss (Incubating) addresses this challenge with an elegant solution: <strong>Primary Key Tables (PK Tables)</strong>.
@@ -93,7 +93,7 @@ These persistent state tables provide the same semantics as running both a log a
Every write produces a durable log entry and an immediately consistent key-value update.
Snapshots and log replay guarantee deterministic recovery, while clients benefit from the simplicity of interacting with one system for reads, writes, and queries.</p>
<p>In this post, we will explore how Fluss PK Tables work, why unifying log and cache into a persistent design is a critical advancement,
-and how this model resolves long-standing challenges of maintaining consistency across multiple systems.</p></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about Primary Key Tables: Unifying Log and Cache for 🚀 Streaming" href="/blog/pk-key-tables-log-cache-streaming/"><b>Read more</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="title_f1Hy"><a href="/blog/taobao-practice/">How Taobao uses Apache Fluss [...]
+and how this model resolves long-standing challenges of maintaining consistency across multiple systems.</p></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about Primary Key Tables: Unifying Log and Cache for 🚀 Streaming" href="/blog/pk-key-tables-log-cache-streaming/"><b>Read more</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="title_f1Hy"><a href="/blog/taobao-practice/">How Taobao uses Apache Fluss [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="introduction">Introduction<a href="#introduction" class="hash-link" aria-label="Direct link to Introduction" title="Direct link to Introduction" translate="no"></a></h3>
<p>The Data Development Team of Taobao has built a new <strong>generation of real-time data warehouse</strong> based on Apache Fluss.
Fluss solves the problems of redundant data transfer, difficulties in data profiling, and challenges in large scale stateful workload operations and maintenance.
diff --git a/blog/page/2/index.html b/blog/page/2/index.html
index 317f65d95..30aa53c71 100644
--- a/blog/page/2/index.html
+++ b/blog/page/2/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.10.0">
-<title data-rh="true">Blog | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" property="og:url" content="https://fluss.a [...]
+<title data-rh="true">Blog | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" property="og:url" content="https://fluss.a [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fluss™ (Incubating) Atom Feed">
@@ -15,42 +15,42 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.5187a663.css">
-<script src="/assets/js/runtime~main.46615272.js" defer="defer"></script>
-<script src="/assets/js/main.f86c048a.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.014214b6.js" defer="defer"></script>
+<script src="/assets/js/main.9d2d82c2.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__d [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__d [...]
<p><img decoding="async" loading="lazy" src="/assets/images/streamhouse-7b7f1260fc996ca89b50dbb9454584ab.png" width="3057" height="1237" class="img_ev3q"></p>
-<p>In this hands-on tutorial, we'll walk you through setting up a local Fluss lakehouse environment, running some practical data operations, and getting first-hand experience with the complete Fluss lakehouse architecture. By the end, you'll have a working environment for experimenting with Fluss's powerful data processing capabilities.</p></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about From Stream to Lake: Hands-On wi [...]
+<p>In this hands-on tutorial, we'll walk you through setting up a local Fluss lakehouse environment, running some practical data operations, and getting first-hand experience with the complete Fluss lakehouse architecture. By the end, you'll have a working environment for experimenting with Fluss's powerful data processing capabilities.</p></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about From Stream to Lake: Hands-On wi [...]
neutral, and standardized. Moving forward, Fluss will leverage the ASF ecosystem to accelerate the building of a global developer community, continuously driving innovation and adoption of next-generation real-time data infrastructure.</p>
-<p><img decoding="async" loading="lazy" alt="ASF" src="/assets/images/asf-0621eab6f6aadbdfebfc5e24a36667c1.png" width="1231" height="631" class="img_ev3q"></p></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about Fluss Joins the Apache Incubator" href="/blog/fluss-joins-asf/"><b>Read more</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="title_f1Hy"><a href="/blog/fluss-java-client/">Apache Fluss Java Cl [...]
+<p><img decoding="async" loading="lazy" alt="ASF" src="/assets/images/asf-0621eab6f6aadbdfebfc5e24a36667c1.png" width="1231" height="631" class="img_ev3q"></p></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about Fluss Joins the Apache Incubator" href="/blog/fluss-joins-asf/"><b>Read more</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="title_f1Hy"><a href="/blog/fluss-java-client/">Apache Fluss Java Cl [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="introduction">Introduction<a href="#introduction" class="hash-link" aria-label="Direct link to Introduction" title="Direct link to Introduction" translate="no"></a></h2>
<p>Apache Fluss is a streaming data storage system built for real-time analytics, serving as a low-latency data layer in modern data Lakehouses.
It supports sub-second streaming reads and writes, storing data in a columnar format for efficiency, and offers two flexible table types: <strong>append-only Log Tables</strong> and <strong>updatable Primary Key Tables</strong>.
In practice, this means Fluss can ingest high-throughput event streams <em>(using log tables)</em> while also maintaining <em>up-to-date</em> reference data or state <em>(using primary key tables)</em>, a combination ideal for
scenarios like IoT, where you might stream sensor readings and look up information for those sensors in real-time, without
-the need for external K/V stores.</p></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about Apache Fluss Java Client: A Deep Dive" href="/blog/fluss-java-client/"><b>Read more</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="title_f1Hy"><a href="/blog/tiering-service/">Tiering Service Deep Dive</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2025-07-01T00:00:00.000Z">July 1, 2025</tim [...]
+the need for external K/V stores.</p></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about Apache Fluss Java Client: A Deep Dive" href="/blog/fluss-java-client/"><b>Read more</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="title_f1Hy"><a href="/blog/tiering-service/">Tiering Service Deep Dive</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2025-07-01T00:00:00.000Z">July 1, 2025</tim [...]
<p><img decoding="async" loading="lazy" src="/assets/images/background-8a1ebc79c438a3deabba060edf8eaa0b.png" width="2036" height="924" class="img_ev3q"></p>
<p>At the core of Fluss’s Lakehouse architecture sits the <strong>Tiering Service:</strong> a smart,
policy-driven data pipeline that seamlessly bridges your real-time Fluss cluster and your cost-efficient lakehouse storage. It continuously ingests fresh events from the fluss cluster, automatically migrating older or less-frequently accessed data into colder storage tiers without interrupting ongoing queries. By balancing hot, warm, and cold storage according to configurable rules, the Tiering Service ensures that recent data remains instantly queryable while historical records are arch [...]
-<p>In this blog post we will take a deep dive and explore how Fluss’s Tiering Service <code>orchestrates data movement</code>, <code>preserves consistency</code>, and empowers <code>scalable</code>, <code>high-performance</code> analytics at <code>optimized costs</code>.</p></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about Tiering Service Deep Dive" href="/blog/tiering-service/"><b>Read more</b></a></div></footer></article><article cla [...]
+<p>In this blog post we will take a deep dive and explore how Fluss’s Tiering Service <code>orchestrates data movement</code>, <code>preserves consistency</code>, and empowers <code>scalable</code>, <code>high-performance</code> analytics at <code>optimized costs</code>.</p></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about Tiering Service Deep Dive" href="/blog/tiering-service/"><b>Read more</b></a></div></footer></article><article cla [...]
<p>🌊 We are excited to announce the official release of <strong>Fluss 0.7</strong>!</p>
-<p>This version has undergone extensive improvements in <strong>stability</strong>, <strong>architecture</strong>, <strong>performance optimization</strong>, and <strong>security</strong>, further enhancing its readiness for <strong>production environments</strong>. Over the past three months, we have completed more than <strong>250 commits</strong>, making this release a significant milestone toward becoming a mature, production-grade streaming storage platform.</p></div><footer class=" [...]
+<p>This version has undergone extensive improvements in <strong>stability</strong>, <strong>architecture</strong>, <strong>performance optimization</strong>, and <strong>security</strong>, further enhancing its readiness for <strong>production environments</strong>. Over the past three months, we have completed more than <strong>250 commits</strong>, making this release a significant milestone toward becoming a mature, production-grade streaming storage platform.</p></div><footer class=" [...]
<p>Traditional streaming data pipelines often need to join many tables or streams on a primary key to create a wide view.
For example, imagine you’re building a real-time recommendation engine for an e-commerce platform.
To serve highly personalized recommendations, your system needs a complete 360° view of each user, including:
<em>user preferences</em>, <em>past purchases</em>, <em>clickstream behavior</em>, <em>cart activity</em>, <em>product reviews</em>, <em>support tickets</em>, <em>ad impressions</em>, and <em>loyalty status</em>.</p>
-<p>That’s at least <strong>8 different data sources</strong>, each producing updates independently.</p></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about Understanding Partial Updates" href="/blog/partial-updates/"><b>Read more</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="title_f1Hy"><a href="/blog/unveil-fluss-logo/">The Story of Fluss Logo</a></h2><div class="container_mt6G margin-vert--md"><ti [...]
+<p>That’s at least <strong>8 different data sources</strong>, each producing updates independently.</p></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about Understanding Partial Updates" href="/blog/partial-updates/"><b>Read more</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="title_f1Hy"><a href="/blog/unveil-fluss-logo/">The Story of Fluss Logo</a></h2><div class="container_mt6G margin-vert--md"><ti [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="introducing-the-little-otter">Introducing the Little Otter<a href="#introducing-the-little-otter" class="hash-link" aria-label="Direct link to Introducing the Little Otter" title="Direct link to Introducing the Little Otter" translate="no"></a></h2>
<p>Today is <a href="https://www.otter.org/world-otter-day" target="_blank" rel="noopener noreferrer" class="">World Otter Day</a>, and we are thrilled to introduce the little otter to the Fluss community! 🎉</p>
<p>Since open-sourced half a year ago, many community members and friends have asked us:
-"When will Fluss get a logo?" After more than a month of careful design work and over 30 iterations, we’re excited to finally unveil the official Fluss logo — a surfing otter! 🦦🌊</p></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about The Story of Fluss Logo" href="/blog/unveil-fluss-logo/"><b>Read more</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="title_f1Hy"><a href="/blog/releases/0.6/" [...]
+"When will Fluss get a logo?" After more than a month of careful design work and over 30 iterations, we’re excited to finally unveil the official Fluss logo — a surfing otter! 🦦🌊</p></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about The Story of Fluss Logo" href="/blog/unveil-fluss-logo/"><b>Read more</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="title_f1Hy"><a href="/blog/releases/0.6/" [...]
three months of intensive development, bringing together the expertise and efforts of 45 contributors worldwide,
with more than 200 code commits completed. Our heartfelt thanks go out to every contributor for their invaluable support!</p>
-<p><img decoding="async" loading="lazy" alt="Release Announcement" src="/assets/images/announce-9ab924e071ec69fe7af8765954f9e966.png" width="1224" height="440" class="img_ev3q"></p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a rel="tag" title="Content related release announcement." class="tag_zVej tagRegular_sFm0" href="/blog/tags/releases/">releases</a></li></ul></div><div class= [...]
+<p><img decoding="async" loading="lazy" alt="Release Announcement" src="/assets/images/announce-9ab924e071ec69fe7af8765954f9e966.png" width="1224" height="440" class="img_ev3q"></p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a rel="tag" title="Content related release announcement." class="tag_zVej tagRegular_sFm0" href="/blog/tags/releases/">releases</a></li></ul></div><div class= [...]
<p>Fluss is designed to address the demands of real-time analytics with the following key capabilities:</p>
<ul>
<li class=""><strong>Real-Time Stream Reading and Writing:</strong> Supports millisecond-level end-to-end latency.</li>
@@ -59,7 +59,7 @@ with more than 200 code commits completed. Our heartfelt thanks go out to every
<li class=""><strong>Changelog Generation:</strong> Supports changelog generation and consumption.</li>
<li class=""><strong>Real-Time Lookup Queries:</strong> Facilitates instant lookup queries on primary keys.</li>
<li class=""><strong>Streaming & Lakehouse Unification:</strong> Seamlessly integrates streaming and lakehouse storage for unified data processing.</li>
-</ul></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about Towards A Unified Streaming & Lakehouse Architecture" href="/blog/unified-streaming-lakehouse/"><b>Read more</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="title_f1Hy"><a href="/blog/fluss-intro/">Introducing Fluss: Streaming Storage for Real-Time Analytics</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2024-12-12T00:0 [...]
+</ul></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about Towards A Unified Streaming & Lakehouse Architecture" href="/blog/unified-streaming-lakehouse/"><b>Read more</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="title_f1Hy"><a href="/blog/fluss-intro/">Introducing Fluss: Streaming Storage for Real-Time Analytics</a></h2><div class="container_mt6G margin-vert--md"><time datetime="2024-12-12T00:0 [...]
Today, we are excited to introduce Fluss, a cutting-edge streaming storage system designed to power real-time analytics.
We are going to explore Fluss's architecture, design principles, key features, and how it addresses the challenges of using Kafka for real-time analytics.</p></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about Introducing Fluss: Streaming Storage for Real-Time Analytics" href="/blog/fluss-intro/"><b>Read more</b></a></div></footer></article><nav class="pagination-nav" aria-label="Blog list page navigation"><a class="pagination-nav__ [...]
<p>Copyright © 2026 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.</p>
diff --git a/blog/page/3/index.html b/blog/page/3/index.html
index 2e4008da9..bfb758189 100644
--- a/blog/page/3/index.html
+++ b/blog/page/3/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.10.0">
-<title data-rh="true">Blog | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" property="og:url" content="https://fluss.a [...]
+<title data-rh="true">Blog | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" property="og:url" content="https://fluss.a [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fluss™ (Incubating) Atom Feed">
@@ -15,17 +15,17 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.5187a663.css">
-<script src="/assets/js/runtime~main.46615272.js" defer="defer"></script>
-<script src="/assets/js/main.f86c048a.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.014214b6.js" defer="defer"></script>
+<script src="/assets/js/main.9d2d82c2.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__d [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__d [...]
This transition is revolutionizing various sectors, including the E-commerce, automotive networking, finance, and beyond,
where real-time data applications are becoming integral to operations. This evolution enables organizations to unlock greater
-value by leveraging real-time insights to drive business impact and enhance decision-making.</p></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about Why Fluss? Top 4 Challenges of Using Kafka for Real-Time Analytics" href="/blog/why-fluss/"><b>Read more</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="title_f1Hy"><a href="/blog/fluss-open-source/">Fluss is Now Open Source</a></h2><div class="container_ [...]
+value by leveraging real-time insights to drive business impact and enhance decision-making.</p></div><footer class="row docusaurus-mt-lg"><div class="col text--right"><a aria-label="Read more about Why Fluss? Top 4 Challenges of Using Kafka for Real-Time Analytics" href="/blog/why-fluss/"><b>Read more</b></a></div></footer></article><article class="margin-bottom--xl"><header><h2 class="title_f1Hy"><a href="/blog/fluss-open-source/">Fluss is Now Open Source</a></h2><div class="container_ [...]
Fluss is a <strong>streaming storage system</strong> designed to power real-time analytics. It aspires to change how organizations approach real-time data by acting as the <strong>real-time data layer</strong> for the Lakehouse.
Its cutting-edge design enables businesses to achieve <strong>sub-second latency</strong>, <strong>high throughput</strong>, and <strong>cost efficiency</strong> for data analytics, making it the ideal solution for modern data-driven applications.</p>
<p>We have historically invested a lot of effort into advancing the data streaming ecosystem, being major contributors to <a href="https://flink.apache.org/" target="_blank" rel="noopener noreferrer" class="">Apache Flink®</a>, <a href="https://www.ververica.com/blog/ververica-donates-flink-cdc-empowering-real-time-data-integration-for-the-community" target="_blank" rel="noopener noreferrer" class="">Apache Flink CDC</a>, and <a href="https://paimon.apache.org/" target="_blank" rel="noop [...]
diff --git a/blog/partial-updates/index.html b/blog/partial-updates/index.html
index 39e196ee0..b77c68fd0 100644
--- a/blog/partial-updates/index.html
+++ b/blog/partial-updates/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.10.0">
-<title data-rh="true">Understanding Partial Updates | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://fluss.apache.org/blog/partial-updates/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag [...]
+<title data-rh="true">Understanding Partial Updates | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://fluss.apache.org/blog/partial-updates/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fluss™ (Incubating) Atom Feed">
@@ -15,14 +15,14 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.5187a663.css">
-<script src="/assets/js/runtime~main.46615272.js" defer="defer"></script>
-<script src="/assets/js/main.f86c048a.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.014214b6.js" defer="defer"></script>
+<script src="/assets/js/main.9d2d82c2.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
<p>Traditional streaming data pipelines often need to join many tables or streams on a primary key to create a wide view.
For example, imagine you’re building a real-time recommendation engine for an e-commerce platform.
To serve highly personalized recommendations, your system needs a complete 360° view of each user, including:
diff --git a/blog/pk-key-tables-log-cache-streaming/index.html b/blog/pk-key-tables-log-cache-streaming/index.html
index 20e2ff685..be1aa739d 100644
--- a/blog/pk-key-tables-log-cache-streaming/index.html
+++ b/blog/pk-key-tables-log-cache-streaming/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.10.0">
-<title data-rh="true">Primary Key Tables: Unifying Log and Cache for 🚀 Streaming | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta dat [...]
+<title data-rh="true">Primary Key Tables: Unifying Log and Cache for 🚀 Streaming | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta dat [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fluss™ (Incubating) Atom Feed">
@@ -15,14 +15,14 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.5187a663.css">
-<script src="/assets/js/runtime~main.46615272.js" defer="defer"></script>
-<script src="/assets/js/main.f86c048a.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.014214b6.js" defer="defer"></script>
+<script src="/assets/js/main.9d2d82c2.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
Common architectures include combinations such as Kafka with Redis, or Debezium feeding changes into a key-value store.
While these patterns underpin a significant portion of production infrastructure, they also introduce <strong>complexity</strong>, <strong>fragility</strong>, and <strong>operational overhead</strong>.</p>
<p>Apache Fluss (Incubating) addresses this challenge with an elegant solution: <strong>Primary Key Tables (PK Tables)</strong>.
diff --git a/blog/releases/0.6/index.html b/blog/releases/0.6/index.html
index 906fc20f5..a0d8fd703 100644
--- a/blog/releases/0.6/index.html
+++ b/blog/releases/0.6/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.10.0">
-<title data-rh="true">Announcing Fluss 0.6 | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" property="og:url" content= [...]
+<title data-rh="true">Announcing Fluss 0.6 | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" property="og:url" content= [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fluss™ (Incubating) Atom Feed">
@@ -15,14 +15,14 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.5187a663.css">
-<script src="/assets/js/runtime~main.46615272.js" defer="defer"></script>
-<script src="/assets/js/main.f86c048a.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.014214b6.js" defer="defer"></script>
+<script src="/assets/js/main.9d2d82c2.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
three months of intensive development, bringing together the expertise and efforts of 45 contributors worldwide,
with more than 200 code commits completed. Our heartfelt thanks go out to every contributor for their invaluable support!</p>
<p><img decoding="async" loading="lazy" alt="Release Announcement" src="/assets/images/announce-9ab924e071ec69fe7af8765954f9e966.png" width="1224" height="440" class="img_ev3q"></p>
diff --git a/blog/releases/0.7/index.html b/blog/releases/0.7/index.html
index 9df2591e0..b0af047b3 100644
--- a/blog/releases/0.7/index.html
+++ b/blog/releases/0.7/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.10.0">
-<title data-rh="true">Announcing Fluss 0.7 | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" property="og:url" content= [...]
+<title data-rh="true">Announcing Fluss 0.7 | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" property="og:url" content= [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fluss™ (Incubating) Atom Feed">
@@ -15,14 +15,14 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.5187a663.css">
-<script src="/assets/js/runtime~main.46615272.js" defer="defer"></script>
-<script src="/assets/js/main.f86c048a.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.014214b6.js" defer="defer"></script>
+<script src="/assets/js/main.9d2d82c2.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
<p>🌊 We are excited to announce the official release of <strong>Fluss 0.7</strong>!</p>
<p>This version has undergone extensive improvements in <strong>stability</strong>, <strong>architecture</strong>, <strong>performance optimization</strong>, and <strong>security</strong>, further enhancing its readiness for <strong>production environments</strong>. Over the past three months, we have completed more than <strong>250 commits</strong>, making this release a significant milestone toward becoming a mature, production-grade streaming storage platform.</p>
<p><img decoding="async" loading="lazy" alt="Improvements Diagram" src="/assets/images/overview-255047ec7648f12c63660b40d1147c86.png" width="1248" height="778" class="img_ev3q"></p>
diff --git a/blog/releases/0.8/index.html b/blog/releases/0.8/index.html
index 6e95f2976..42913c51f 100644
--- a/blog/releases/0.8/index.html
+++ b/blog/releases/0.8/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.10.0">
-<title data-rh="true">Announcing Apache Fluss (Incubating) 0.8: Streaming Lakehouse for Data + AI | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_lo [...]
+<title data-rh="true">Announcing Apache Fluss (Incubating) 0.8: Streaming Lakehouse for Data + AI | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_lo [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fluss™ (Incubating) Atom Feed">
@@ -15,14 +15,14 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.5187a663.css">
-<script src="/assets/js/runtime~main.46615272.js" defer="defer"></script>
-<script src="/assets/js/main.f86c048a.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.014214b6.js" defer="defer"></script>
+<script src="/assets/js/main.9d2d82c2.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
<p>🌊 We are excited to announce the official release of <strong>Apache Fluss (Incubating) 0.8</strong>!</p>
<p>This is our first release under the incubator of the Apache Software Foundation, marking a significant milestone in our journey to provide a robust streaming storage platform for real-time analytics.</p>
<p>Over the past four months, the community has made tremendous progress, delivering nearly 400 commits that push the boundaries of the Streaming Lakehouse ecosystem. This release includes multiple stability optimizations and introduces deeper integrations, performance breakthroughs, and next-generation stream processing capabilities. Highlights:</p>
diff --git a/blog/releases/0.9/index.html b/blog/releases/0.9/index.html
index 5b770354f..9f6494ec5 100644
--- a/blog/releases/0.9/index.html
+++ b/blog/releases/0.9/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.10.0">
-<title data-rh="true">Apache Fluss (Incubating) 0.9 Release Announcement | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="tr [...]
+<title data-rh="true">Apache Fluss (Incubating) 0.9 Release Announcement | Apache Fluss™ (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="true" name="twitter:image" content="https://fluss.apache.org/img/logo/png/colored_logo.png"><meta data-rh="tr [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fluss™ (Incubating) Atom Feed">
@@ -15,14 +15,14 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.5187a663.css">
-<script src="/assets/js/runtime~main.46615272.js" defer="defer"></script>
-<script src="/assets/js/main.f86c048a.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.014214b6.js" defer="defer"></script>
+<script src="/assets/js/main.9d2d82c2.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
-<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
+<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="blog-post-page-no-sidebar"><div role="region" aria-label="Skip to main content">< [...]
<p>🌊 We are excited to announce the official release of <strong>Apache Fluss (Incubating) 0.9</strong>!</p>
<p>This release marks a major milestone for the project. Fluss 0.9 significantly expands Fluss’s capabilities as a <strong>streaming storage system for real-time analytics, AI, and state-heavy streaming workloads</strong>, with a strong focus on:</p>
<ul>
@@ -231,7 +231,7 @@ Following the rebalancing operation, <strong>all metrics are evenly distributed<
<p>The Fluss community is committed to delivering a smooth upgrade experience. This 0.9 release maintains compatibility at the levels of network protocols and storage formats, with full bidirectional compatibility between clients and servers:</p>
<p>However, we changed some default behavior and added new features that may require adjustments in your applications and operational practices. Please refer to the <a href="https://fluss.apache.org/docs/0.9/maintenance/operations/upgrade-notes-0.9/" target="_blank" rel="noopener noreferrer" class="">upgrade notes</a> for a comprehensive list of adjustments to make and issues to check during the upgrading process.</p>
<p>For a detailed list of all changes in this release, please refer to the <a href="https://github.com/apache/fluss/releases/tag/v0.9.0-incubating" target="_blank" rel="noopener noreferrer" class="">release notes</a>.</p>
-<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="list-of-contributors">List of contributors<a href="#list-of-contributors" class="hash-link" aria-label="Direct link to List of contributors" title="Direct link to List of contributors" translate="no"></a></h2>
+<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="list-of-contributors">List of contributors<a href="#list-of-contributors" class="hash-link" aria-label="Direct link to List of contributors" title="Direct link to List of contributors" translate="no">