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/beam.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 5241722082b Publishing website 2026/09/28 17:50:52 at commit 092c918
5241722082b is described below
commit 5241722082badc51e25c35042dce2bb02d8db305
Author: runner <runner@main-runner-2404-9kmqn-j7lq6>
AuthorDate: Mon Sep 28 17:50:52 2026 +0000
Publishing website 2026/09/28 17:50:52 at commit 092c918
---
.../documentation/sdks/java-thirdparty/index.html | 29 +++++++++++++++++++++-
website/generated-content/sitemap.xml | 2 +-
2 files changed, 29 insertions(+), 2 deletions(-)
diff --git
a/website/generated-content/documentation/sdks/java-thirdparty/index.html
b/website/generated-content/documentation/sdks/java-thirdparty/index.html
index fa6cfac3e96..7789deeae0a 100644
--- a/website/generated-content/documentation/sdks/java-thirdparty/index.html
+++ b/website/generated-content/documentation/sdks/java-thirdparty/index.html
@@ -35,7 +35,7 @@
<img class=banner-img-mobile
src=/images/banners/tour-of-beam/tour-of-beam-mobile.png alt="Start Tour of
Beam"></a></div><div class=swiper-slide><a
href=https://beam.apache.org/documentation/ml/overview/><img
class=banner-img-desktop
src=/images/banners/machine-learning/machine-learning-desktop.jpg alt="Machine
Learning">
<img class=banner-img-mobile
src=/images/banners/machine-learning/machine-learning-mobile.jpg alt="Machine
Learning"></a></div></div><div class=swiper-pagination></div><div
class=swiper-button-prev></div><div
class=swiper-button-next></div></div><script
src=/js/swiper-bundle.min.min.e0e8f81b0b15728d35ff73c07f42ddbb17a108d6f23df4953cb3e60df7ade675.js></script>
<script
src=/js/sliders/top-banners.min.afa7d0a19acf7a3b28ca369490b3d401a619562a2a4c9612577be2f66a4b9855.js></script>
-<script>function showSearch(){addPlaceholder();var
e,t=document.querySelector(".searchBar");t.classList.remove("disappear"),e=document.querySelector("#iconsBar"),e.classList.add("disappear")}function
addPlaceholder(){$("input:text").attr("placeholder","What are you looking
for?")}function endSearch(){var
e,t=document.querySelector(".searchBar");t.classList.add("disappear"),e=document.querySelector("#iconsBar"),e.classList.remove("disappear")}function
blockScroll(){$("body").toggleClass(" [...]
+<script>function showSearch(){addPlaceholder();var
e,t=document.querySelector(".searchBar");t.classList.remove("disappear"),e=document.querySelector("#iconsBar"),e.classList.add("disappear")}function
addPlaceholder(){$("input:text").attr("placeholder","What are you looking
for?")}function endSearch(){var
e,t=document.querySelector(".searchBar");t.classList.add("disappear"),e=document.querySelector("#iconsBar"),e.classList.remove("disappear")}function
blockScroll(){$("body").toggleClass(" [...]
the webserver. The format of these log files is a configuration option in the
Apache HTTPD server so parsing this
into useful data elements is normally very hard to do.</p><p>To solve this
problem in an easy way a library was created that works in combination with
Apache Beam
and is capable of doing this for both the Apache HTTPD and NGINX.</p><p>The
basic idea is that the logformat specification is the schema used to create the
line.
@@ -87,6 +87,33 @@ This parser is simply initialized with this schema and the
list of fields you wa
record.agentNameVersion = value;
}
}));
+</code></pre><h2 id=error-handling-and-dead-letter-queues>Error handling and
dead letter queues</h2><h3 id=summary-2>Summary</h3><p>Asgarde simplifies error
handling in the transformation steps of Beam pipelines. The Beam
+<a
href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/transforms/errorhandling/ErrorHandler.html><code>ErrorHandler</code></a>
+aggregates bad records into a single dead letter queue, but each
transformation step still has to catch its own errors
+(a <code>try/catch</code> block and a <code>BadRecordRouter</code> in each
<code>DoFn</code>, or <code>exceptionsInto</code>/<code>exceptionsVia</code>).
Asgarde keeps the
+fluent style of the <code>apply</code> chain: each step catches its errors as
<code>Failure</code> objects (step name, input element and
+exception), gathered for the whole flow.</p><p>It accepts the Beam
<code>MapElements</code> and <code>FlatMapElements</code>, and provides
<code>DoFn</code> classes with built-in error handling
+(<code>MapElementFn</code>, <code>FlatMapElementFn</code>,
<code>FilterFn</code>…) supporting side inputs and the <code>DoFn</code>
lifecycle. It can also keep,
+in the failures, the element that entered the flow, to replay a failure from
the start, and counts the failures per
+step with Beam metrics. The Asgarde failures can be converted to
<code>BadRecord</code>s and added to an <code>ErrorHandler</code>, for a
+single dead letter queue together with the Beam IOs. Beam is a
<code>provided</code> dependency: the library isn’t tied to a Beam
+version. Kotlin extensions are included, and a Python version is available on
PyPI
+(<a href=https://github.com/tosun-si/pasgarde>pasgarde</a>).</p><h3
id=project-page-2>Project page</h3><p><a
href=https://github.com/tosun-si/asgarde>https://github.com/tosun-si/asgarde</a></p><p>Documentation:
<a
href=https://tosun-si.github.io/asgarde/>https://tosun-si.github.io/asgarde/</a></p><h3
id=license-2>License</h3><p>MIT License</p><h3
id=download-2>Download</h3><pre><code><dependency>
+ <groupId>fr.groupbees</groupId>
+ <artifactId>asgarde</artifactId>
+ <version>1.4.0</version>
+</dependency>
+</code></pre><h3 id=code-example-2>Code
example</h3><pre><code>WithFailures.Result<PCollection<Integer>,
Failure> result = CollectionComposer.of(input)
+ .apply("Trim",
MapElements.into(TypeDescriptors.strings()).via((String value) ->
value.trim()))
+ .apply("Parse",
MapElementFn.into(TypeDescriptors.integers()).via((String value) ->
Integer.parseInt(value)))
+ .apply("Keep even numbers", FilterFn.by(number -> number % 2
== 0))
+ .getResult();
+
+PCollection<Integer> output = result.output();
+PCollection<Failure> failures = result.failures(); // The failures of
all the steps
+
+// Optional: a single dead letter queue with the Beam IOs using the
ErrorHandler.
+errorHandler.addErrorCollection(failures.apply("To bad records",
FailureTransforms.toBadRecords()));
</code></pre></div></div><footer class=footer><div
class=footer__contained><div class=footer__cols><div class="footer__cols__col
footer__cols__col__logos"><div class=footer__cols__col__logo><img
src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div
class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg
class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div
class=wrapper-grid><div class=footer__cols__col><div class=footer__c [...]
<a href=https://www.apache.org>The Apache Software Foundation</a>
| <a href=/privacy_policy>Privacy Policy</a>
diff --git a/website/generated-content/sitemap.xml
b/website/generated-content/sitemap.xml
index 04746c1276e..161a9e28f98 100644
--- a/website/generated-content/sitemap.xml
+++ b/website/generated-content/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>/categories/blog/</loc><lastmod>2026-09-28T07:40:45-04:00</lastmod></url><url><loc>/blog/</loc><lastmod>2026-09-28T07:40:45-04:00</lastmod></url><url><loc>/categories/</loc><lastmod>2026-09-28T07:40:45-04:00</lastmod></url><url><loc>/categories/gsoc/</loc><lastmod>2026-09-28T07:40:45-04:00</lastmod></url><url><loc>/blog/py
[...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>/categories/blog/</loc><lastmod>2026-09-28T12:43:36-04:00</lastmod></url><url><loc>/blog/</loc><lastmod>2026-09-28T12:43:36-04:00</lastmod></url><url><loc>/categories/</loc><lastmod>2026-09-28T12:43:36-04:00</lastmod></url><url><loc>/categories/gsoc/</loc><lastmod>2026-09-28T12:43:36-04:00</lastmod></url><url><loc>/blog/py
[...]
\ No newline at end of file