10 articles Pattern & Best Practice

Outbound-Pattern Microservices Architektur: Sichere Datenübergabe in verteilten Systemen

In verteilten Systemen, wie Microservice-Architekturen, stellen sich unweigerlich folgende Fragen: Das Outbound-Pattern kann uns hierbei helfen, dieses Problem zu lösen. Es handelt sich um eine bewährte Methode, um Datenkonsistenz und Transaktionen in verteilten Systemen zu gewährleisten.

Microservices Event- | Command- | Data-Bus | Event Driven

Was kann schon schief gehen? Ereignisgesteuerte (Event Driven) Architekturen dienen keinem Selbstzweck. Häufig soll sie Problemen vorbeugen und uns helfen eine stabile Service Architektur zu entwickeln. Abseits vom „Happy Case“, was kann den wie und wo schief gehen; wie kann uns diese Architektur helfen? Wir schauen uns drei typische Lösungsmethoden an:

Datenbanken | Transaktionen | Locks | Isolationslevel

Als Basis für weiterführende Videos zum Thema Event Driven Architekturen, oder Eventual Consistency wollen wir uns zusammen Datenbanken und Transaktionen anschauen. Hier geht es darum ein Grundverständnis für Basiskonzepte zu schaffen wie:

Datenbank Timeouts | Locks | Isonaltionlevel | Transaktionen

Häufig vergessen, oder nur teilweise gemacht. Timeouts tragen einen wesentlichen Bestandteil zur Stabilität und dem Ressourcenmanagement von Software bei. Insbesondere bei Microservices sollten diese immer richtig eingestellt sein. Timeouts spielen auch eine wesentliche Rolle in Bezug auf Transaktionen, Locks und Isolationslevel. Sollte man zudem den Zugriff auf die Datenbank auch Dritten gewähren, also nicht nur…

A better way for TypeScript Enum

A better way to define enums in Typescript In this way it is much easier to provide an enum including a potential mapping to a different value e.g. a display value. This solution is usually considered being better, as long as enums aren’t supported by JavaScript natively. Links

Clean Code

Jede Funktion macht genau eine Sache Damit wird sichergestellt das dieser eine klare API und Funktion hat und der Nutzer einer Methode nicht überrascht wird, zB indem es zu einem unerwarteten Seiteneffekt führt. Beispiele: „readPersonById“ ändern zudem auch den Status in der DB, weil es den Zugriff protokolliert „formatDate“ vom DateFormatter führt zu einem Fehler,…

Dates, DateTime, Timezone and the DB

TL;DR Summary Java Type DB Type Description SAVE Long NUMBER Just using a long as milliseconds, between the current time and midnight, January 1, 1970 UTC is the most secure way. SAVE Instant NUMBER Using in Java an Instant and converting it into a NUMBER to save it in the DB will also avoid any…

JavaScript Module Pattern or Just Private Variables

JavaScript is a wonderful language to get thinks fundamentally wrong from the start. As so where are many patters around to help us to avoid some of these challenges ;-). The module pattern is one of the most known and used. It helps us to create private variables or better to avoid side effects in…

Strong IDs

In some projects you may encounter the so called „strong id pattern“. What is it? Strong IDs are simply wrapped primitive or simple types into classes. Just remember what we did in Java before the Enum come around. We had just Strings or Numbers in the code which we used to assign well known values…