This is an automated email from the ASF dual-hosted git repository.

voonhous pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/hudi.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new bc7e03a1200e docs(blog): add the InfoQ article on computing time in 
queue for Hudi Kafka pipelines (#19795)
bc7e03a1200e is described below

commit bc7e03a1200e77cd27940d173ab066bf09c356b8
Author: Ranga Reddy <[email protected]>
AuthorDate: Thu Sep 3 09:46:31 2026 +0530

    docs(blog): add the InfoQ article on computing time in queue for Hudi Kafka 
pipelines (#19795)
    
    * docs(blog): add the InfoQ article on computing time in queue for Hudi 
Kafka pipelines
    
    "Beyond Offset Lag: Computing Time in Queue for Apache Hudi Data Lake 
Pipelines at
    Petabyte Scale", by Srikanth Mamidala, InfoQ, 26 August 2026.
    
    Twilio ingests five trillion records a month through Hudi Streamer, and the 
article is
    about why Kafka offset lag is the wrong freshness signal for those 
pipelines: it says
    how far behind a consumer is, not how old the data is. It derives a 
time-in-queue metric
    by reading the Kafka checkpoint out of the latest .hoodie commit file, 
seeking to that
    offset in the topic, and measuring the timestamp delta against now, so it 
runs off the
    timeline Hudi Streamer already writes with no change to the pipeline.
    
    Added as a redirect stub, the established shape for externally hosted 
articles, with the
    author declared inline rather than in authors.yml since it is a one-off 
contributor.
    
    The hero is drawn for this post at the required 1200x600 in the site's 
brand palette,
    rather than copied from the article. It shows one Kafka partition with the 
checkpoint
    recorded in the latest commit, and the same span measured twice: as an 
offset count
    above and as elapsed time below.
    
    validate-blog.py rejects the twilio tag, so it is added to ALLOWED_TAGS 
here, as the
    script's own error message directs. It follows the existing company-tag 
convention
    alongside uber, walmart, robinhood, upstox, metica and southwest airlines, 
and needs a
    reviewer's approval.
    
    * fix(blog-validator): raise on missing fields
    
    The missing-field branch in validate_blog() only appended an error
    when field == 'author', but 'author' is not in REQUIRED_FIELDS, so a
    post with no title, category or image passed silently. Report the
    missing field by name; the separate author/authors check is unchanged.
    
    CI validates only the blog files changed in a PR, so existing posts
    without an image (22 today) are unaffected; only --all reports them.
    
    * docs(blog): shrink beyond-offset-lag hero PNG
    
    The hero was an RGBA PNG with a fully opaque alpha channel. Quantize
    it to a 256-color palette: 272 KB to 31 KB at the same 1200x600 with
    no visible change.
    
    ---------
    
    Co-authored-by: voon <[email protected]>
---
 .github/scripts/validate-blog.py                        |   6 ++----
 ...omputing-time-in-queue-for-apache-hudi-pipelines.mdx |  16 ++++++++++++++++
 ...omputing-time-in-queue-for-apache-hudi-pipelines.png | Bin 0 -> 31032 bytes
 3 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/.github/scripts/validate-blog.py b/.github/scripts/validate-blog.py
index 8f15cbb08d5b..a8b8ed4089dd 100644
--- a/.github/scripts/validate-blog.py
+++ b/.github/scripts/validate-blog.py
@@ -29,7 +29,7 @@ ALLOWED_TAGS = {
     'debezium', 'data skipping', 'daft', 'ai',
     'table format', 'starrocks', 'halodoc', 'gdpr', 'schema', 'scd',
     'observability', 'metadata', 'meetup', 'key generation', 'docker',
-    'cleaner', 'apache hive', 'apache doris', 'vector search', 'upstox',
+    'cleaner', 'apache hive', 'apache doris', 'vector search', 'upstox', 
'twilio',
     'tla specification', 'streamlit', 'rag', 'presto', 'postgres',
     'file sizing', 'etl', 'databricks', 'data warehouse', 'applied intuition',
     'conference', 'compaction', 'bootstrap', 'apache parquet', 'announcement',
@@ -145,9 +145,7 @@ def validate_blog(filepath: str) -> list[str]:
     # Check required fields
     for field in REQUIRED_FIELDS:
         if field not in frontmatter:
-            # author or authors is acceptable
-            if field == 'author' and 'authors' not in frontmatter:
-                errors.append("Missing required field: 'author' or 'authors'")
+            errors.append(f"Missing required field: '{field}'")
         elif not frontmatter[field]:
             errors.append(f"Field '{field}' is empty")
 
diff --git 
a/website/blog/2026-08-26-beyond-offset-lag-computing-time-in-queue-for-apache-hudi-pipelines.mdx
 
b/website/blog/2026-08-26-beyond-offset-lag-computing-time-in-queue-for-apache-hudi-pipelines.mdx
new file mode 100644
index 000000000000..6fe9ba9740c6
--- /dev/null
+++ 
b/website/blog/2026-08-26-beyond-offset-lag-computing-time-in-queue-for-apache-hudi-pipelines.mdx
@@ -0,0 +1,16 @@
+---
+title: "Beyond Offset Lag: Computing Time in Queue for Apache Hudi Data Lake 
Pipelines at Petabyte Scale"
+authors:
+- name: Srikanth Mamidala
+category: case-study
+image: 
/assets/images/blog/2026-08-26-beyond-offset-lag-computing-time-in-queue-for-apache-hudi-pipelines.png
+tags:
+- apache kafka
+- observability
+- hudi streamer
+- twilio
+---
+
+import Redirect from '@site/src/components/Redirect';
+
+<Redirect 
url="https://www.infoq.com/articles/beyond-offset-lag-kafka-apache-hudi/";>Redirecting...
 please wait!! </Redirect>
diff --git 
a/website/static/assets/images/blog/2026-08-26-beyond-offset-lag-computing-time-in-queue-for-apache-hudi-pipelines.png
 
b/website/static/assets/images/blog/2026-08-26-beyond-offset-lag-computing-time-in-queue-for-apache-hudi-pipelines.png
new file mode 100644
index 000000000000..4297039f5c92
Binary files /dev/null and 
b/website/static/assets/images/blog/2026-08-26-beyond-offset-lag-computing-time-in-queue-for-apache-hudi-pipelines.png
 differ

Reply via email to