<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Design Pattern on Sven Ruppert</title><link>https://sven-ruppert.info/categories/design-pattern/</link><description>Recent content in Design Pattern on Sven Ruppert</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>sven.ruppert@gmail.com (Sven Ruppert)</managingEditor><webMaster>sven.ruppert@gmail.com (Sven Ruppert)</webMaster><copyright>© 2026 Sven Ruppert</copyright><lastBuildDate>Tue, 02 Dec 2025 07:05:00 +0000</lastBuildDate><atom:link href="https://sven-ruppert.info/categories/design-pattern/index.xml" rel="self" type="application/rss+xml"/><item><title>Advent Calendar - 2025 - Filter &amp;amp; Search – Part 01</title><link>https://sven-ruppert.info/posts/advent-calendar-2025-filter-search-part-01/</link><pubDate>Tue, 02 Dec 2025 07:05:00 +0000</pubDate><author>sven.ruppert@gmail.com (Sven Ruppert)</author><guid>https://sven-ruppert.info/posts/advent-calendar-2025-filter-search-part-01/</guid><description>&lt;p&gt;With the Vaadin interface described in &lt;a href="https://svenruppert.com/2025/08/15/part-iii-webui-with-vaadin-flow-for-the-url-shortener/" target="_blank" rel="noreferrer"&gt;[Part III]&lt;/a&gt;, our URL shortener has a fully functional administration console available for the first time. It allows viewing existing short links in tabular form and managing them manually. But after just a few dozen entries, a clear limit becomes apparent: displaying all saved mappings is neither performant nor user-friendly. An efficient shortener must be able to scale – not only when generating, but also when searching through its data.&lt;/p&gt;</description></item><item><title>Core Java - Flow.Processor</title><link>https://sven-ruppert.info/posts/core-java-flow-processor/</link><pubDate>Thu, 04 Sep 2025 11:27:00 +0000</pubDate><author>sven.ruppert@gmail.com (Sven Ruppert)</author><guid>https://sven-ruppert.info/posts/core-java-flow-processor/</guid><description>&lt;p&gt;Reactive streams address a fundamental problem of modern systems: &lt;strong&gt;Producers&lt;/strong&gt; (sensors, services, user events) deliver data at &lt;em&gt;an unpredictable rate&lt;/em&gt; , while &lt;strong&gt;consumers&lt;/strong&gt; (persistence, UI, analytics) can only process data at a limited speed. Without a &lt;em&gt;flow control model&lt;/em&gt; , backlogs, storage pressure, and ultimately outages occur.&lt;/p&gt;</description></item><item><title>How and why to use the classic Observer pattern in Vaadin Flow</title><link>https://sven-ruppert.info/posts/how-and-why-to-use-the-classic-observer-pattern-in-vaadin-flow/</link><pubDate>Mon, 01 Sep 2025 11:32:18 +0000</pubDate><author>sven.ruppert@gmail.com (Sven Ruppert)</author><guid>https://sven-ruppert.info/posts/how-and-why-to-use-the-classic-observer-pattern-in-vaadin-flow/</guid><description>&lt;h2 class="relative group"&gt;1. Introduction and motivation
 &lt;div id="1-introduction-and-motivation" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#1-introduction-and-motivation" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;The observer pattern is one of the basic design patterns of software development and is traditionally used to decouple state changes and process them. Its origins lie in the development of graphical user interfaces, where a shift in the data model required synchronising several views immediately, without a direct link between these views. This pattern quickly established itself as the standard solution to promote loosely coupled architectures.&lt;/p&gt;</description></item><item><title>CWE-778: Lack of control over error reporting in Java</title><link>https://sven-ruppert.info/posts/cwe-778-lack-of-control-over-error-reporting-in-java/</link><pubDate>Fri, 18 Oct 2024 14:07:20 +0000</pubDate><author>sven.ruppert@gmail.com (Sven Ruppert)</author><guid>https://sven-ruppert.info/posts/cwe-778-lack-of-control-over-error-reporting-in-java/</guid><description>&lt;h2 class="relative group"&gt;Learn how inadequate control over error reporting leads to security vulnerabilities and how to prevent them in Java applications.
 &lt;div id="learn-how-inadequate-control-over-error-reporting-leads-to-security-vulnerabilities-and-how-to-prevent-them-in-java-applications" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#learn-how-inadequate-control-over-error-reporting-leads-to-security-vulnerabilities-and-how-to-prevent-them-in-java-applications" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Safely handling error reports is a central aspect of software development, especially in safety-critical applications. CWE-778 describes a vulnerability caused by inadequate control over error reports. This post will analyse the risks associated with CWE-778 and show how developers can implement safe error-handling practices to avoid such vulnerabilities in Java programs.&lt;/p&gt;</description></item><item><title>The Compensating Transaction Pattern</title><link>https://sven-ruppert.info/posts/the-compensating-transaction-pattern/</link><pubDate>Mon, 12 Feb 2024 12:40:41 +0000</pubDate><author>sven.ruppert@gmail.com (Sven Ruppert)</author><guid>https://sven-ruppert.info/posts/the-compensating-transaction-pattern/</guid><description>&lt;h2 class="relative group"&gt;The Bird-Eye View
 &lt;div id="the-bird-eye-view" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-bird-eye-view" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;A Compensating Transaction Pattern is a technique used to ensure consistency when multiple steps are involved in a process, and some steps may fail. It essentially consists in having &amp;ldquo;undo&amp;rdquo; transactions for each successful step, so if something goes wrong later on, you can reverse the changes made earlier and maintain data integrity.&lt;/p&gt;</description></item></channel></rss>