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>&mldr;) 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&rsquo;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>&lt;dependency&gt;
+  &lt;groupId&gt;fr.groupbees&lt;/groupId&gt;
+  &lt;artifactId&gt;asgarde&lt;/artifactId&gt;
+  &lt;version&gt;1.4.0&lt;/version&gt;
+&lt;/dependency&gt;
+</code></pre><h3 id=code-example-2>Code 
example</h3><pre><code>WithFailures.Result&lt;PCollection&lt;Integer&gt;, 
Failure&gt; result = CollectionComposer.of(input)
+    .apply(&quot;Trim&quot;, 
MapElements.into(TypeDescriptors.strings()).via((String value) -&gt; 
value.trim()))
+    .apply(&quot;Parse&quot;, 
MapElementFn.into(TypeDescriptors.integers()).via((String value) -&gt; 
Integer.parseInt(value)))
+    .apply(&quot;Keep even numbers&quot;, FilterFn.by(number -&gt; number % 2 
== 0))
+    .getResult();
+
+PCollection&lt;Integer&gt; output = result.output();
+PCollection&lt;Failure&gt; 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(&quot;To bad records&quot;, 
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

Reply via email to