<?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/tags/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>Thu, 04 Sep 2025 11:27:00 +0000</lastBuildDate><atom:link href="https://sven-ruppert.info/tags/design-pattern/index.xml" rel="self" type="application/rss+xml"/><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>Short links, clear architecture – A URL shortener in Core Java</title><link>https://sven-ruppert.info/posts/short-links-clear-architecture-a-url-shortener-in-core-java/</link><pubDate>Tue, 10 Jun 2025 22:43:22 +0000</pubDate><author>sven.ruppert@gmail.com (Sven Ruppert)</author><guid>https://sven-ruppert.info/posts/short-links-clear-architecture-a-url-shortener-in-core-java/</guid><description>&lt;p&gt;A URL shortener seems harmless – but if implemented incorrectly, it opens the door to phishing, enumeration, and data leakage. In this first part, I&amp;rsquo;ll explore the theoretical and security-relevant fundamentals of a URL shortener in Java – without any frameworks, but with a focus on entropy, collision tolerance, rate limiting, validity logic, and digital responsibility. The second part covers the complete implementation: modular, transparent, and as secure as possible.&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><item><title>Pattern from the practical life of a software developer</title><link>https://sven-ruppert.info/posts/pattern-from-the-practical-life-of-a-software-developer/</link><pubDate>Tue, 09 Mar 2021 21:28:00 +0000</pubDate><author>sven.ruppert@gmail.com (Sven Ruppert)</author><guid>https://sven-ruppert.info/posts/pattern-from-the-practical-life-of-a-software-developer/</guid><description>&lt;h1 class="relative group"&gt;Builder-Pattern
 &lt;div id="builder-pattern" 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="#builder-pattern" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;The book from the &amp;ldquo;gang of four&amp;rdquo; is part of the essential reading in just about every computer science branch. The basic patterns are described and grouped to get a good start on the topic of design patterns. But how does it look later in use?&lt;br&gt;
Here we will take a closer look at one pattern and expand it.&lt;/p&gt;</description></item></channel></rss>