Architektur

Architektur beschreibt Struktur und Zusammenspiel von Komponenten innerhalb einer Software oder eines verteilten Systems. Architekturentscheidungen sind oftmals diejenigen Entscheidungen, die später nur noch mit hohem Kosten-/Zeitaufwand oder Risiko geändert werden können.

Apache Kafka

Lesezeit: 13 MinutenApache Kafka ist ein verteiltes System zur Verarbeitung von Datenströmen, das auf hohen Datendurchsatz, geringe Latenzen und Echtzeitverarbeitung optimiert ist. Dafür setzt es auf ein TCP-basiertes binäres und auf Effizienz optimiertes Protokoll, das Nachrichten gruppiert, um den Datenoverhead zu minimieren. Apache Kafka wurde ursprünglich bei LinkedIn entwickelt und 2011 an die Apache Software Foundation übergeben […]

Apache Kafka Weiterlesen »

Qualitätsszenarien

Lesezeit: 9 MinutenIn meinem vorherigen Beitrag in der Kategorie Architektur habe ich mich mit Qualitätsmerkmalen befasst. Nun soll es, wie damals angekündigt, um Qualitätsszenarien gehen. Ich arbeite in diesem Artikel wieder mit dem Beispiel meines Passwortmanagers. Dieser hat nun endlich einen neuen Namen gefunden! Zum Zeitpunkt des vorherigen Beitrags trug er noch den Namen PwMan3. Ich werde

Qualitätsszenarien Weiterlesen »

Qualitätsmerkmale

Lesezeit: 13 MinutenEine Tür dient dem Betreten und Verlassen eines Raumes oder Gebäudes. Sie kann geöffnet und geschlossen werden. An eine Außentür werden andere Anforderung gestellt, als an eine Innentür, die zwei angrenzende Räume in einem Wohnbereich verbindet. Eine Außentür muss bestimmten Witterungsbedingungen standhalten. Sie schützt vor Wind und Regen. Sie hält im Winter die Wärme drinnen

Qualitätsmerkmale Weiterlesen »

Big Ball of Mud

Lesezeit: 18 MinutenAls Big Ball of Mud (BBoM) bezeichnet man ein Softwaresystem, das keine durchgängige Architektur besitzt, viele unerwünschte Querbeziehungen zwischen Modulen, Klassen und Funktionen aufweist und in Bezug auf Änderungen sehr fragil und fehleranfällig ist. Der BBoM gilt als Architektur-Anti-Pattern und wird oft bei Legacy-Systemen angetroffen. Die Bezeichnung Big Ball of Mud wurde durch einen gleichnamigen

Big Ball of Mud Weiterlesen »

Feature Flags

Lesezeit: 7 MinutenFeature Flags, auch unter anderen Bezeichnungen wie etwa Feature Toggles bekannt, sind Software-Schalter, die Code aktivieren oder deaktivieren. Ich habe Feature Flags in der Kategorie Architektur untergebracht, da ein Entschluss zur Verwendung von Feature Flags sich durch die gesamte Architektur ziehen und eine bedeutsame Entscheidung in der Entwicklung einer Software darstellen kann. Gleichzeitig ist der

Feature Flags Weiterlesen »

Domain Driven Design: Bounded Context

Lesezeit: 5 MinutenDer Bounded Context ist das Zentrum des Strategic Designs im Domain-driven Design und lässt sich grob als abgegrenzter Bereich übersetzen. Definition und Vorteile Unter Bounded Context versteht man den Geltungsbereich einer Fachdomäne in Form ihres Datenmodells, ihrer Begrifflichkeiten und der sie ausmachenden Personen. Die Unterteilung eines komplizierten Gesamtsystems in Bounded Contexts macht die einzelnen Domänen

Domain Driven Design: Bounded Context Weiterlesen »

Anti-Corruption Layer

Lesezeit: 8 MinutenDer Anti-Corruption Layer (ACL) ist ein Muster (Pattern) aus dem Strategic Design im Domain-driven Design (DDD) von Eric Evans. Ursprung Im Domain-driven Design ist der ACL eine Schicht zwischen zwei oder mehr Bounded Contexts, also Domänen, und ermöglicht die Kommunikation zwischen diesen. Verschiedene Bounded Contexts können von verschiedenen Teams oder Gewerken verantwortet werden. Das führt

Anti-Corruption Layer Weiterlesen »

CQRS

Lesezeit: 10 MinutenCommand Query Responsibility Segregation (CQRS) ist ein Architekturentwurfsmuster zur Trennung von lesenden und schreibenden Zugriffen. Der Begriff wurde 2010 von Greg Young geprägt und hat sich schnell etabliert. CQRS is simply the creation of two objects where there was previously only one Greg Young CQRS ist eine Fortführung von CQS, auf das ich im nächsten

CQRS Weiterlesen »

Event Sourcing

Lesezeit: 12 MinutenEvent Sourcing ist ein Architekturmuster, bei dem sich der State einer Anwendung aus einer Folge von Events ergibt. Der Begriff Event Sourcing wurde von Martin Fowler geprägt und kann so verstanden werden, dass der Zustand in eine Menge von Events als die Quelle aller Wahrheiten ausgelagert wird. Funktionsweise und Beispiele Im Event Sourcing werden alle

Event Sourcing Weiterlesen »

Hexagonale Architektur

Lesezeit: 16 MinutenDie hexagonale Architektur ist ein Architekturansatz, der eine Software in lose gekoppelte Komponenten unterteilt, die Technik von der Fachlichkeit trennt und die Austauschbarkeit der Komponenten erleichtert. Damit ist die hexagonale Architektur besonders geeignet für langlebige Softwaresysteme mit einer komplexen Fachdomäne. Die Schichtenarchitektur Der Wunsch in der Software-Entwicklung, Verantwortlichkeiten voneinander zu trennen, ist uralt. Der Begriff

Hexagonale Architektur Weiterlesen »