Schwerpunktthema

Softwarearchitektur

Fachartikel, Podcasts, Vorträge und mehr zum Thema Softwarearchitektur.
Blog-Post

Die neue Ökonomie der Softwareentwicklung

KI hat die Zeit, die wir zum Entwickeln von Software brauchen, drastisch verkürzt. Das heißt aber nicht, dass wir einfach mehr Features liefern sollten. Die Produktivitätsgewinne durch Coding Agents sind eine Gelegenheit, neu darüber nachzudenken, wie wir unsere Entwicklungszeit investieren. Statt technische Schulden immer schneller anzuhäufen, können wir KI nutzen, um sauberere Abstraktionen zu bauen, die Wartbarkeit zu verbessern und unsere Codebasis besser zu hinterlassen, als wir sie vorgefunden haben. Dieser Artikel zeigt, wie KI das klassische Projektmanagement-Dreieck verändert hat und warum Qualität zu unserem neuen Wettbewerbsvorteil werden sollte.

Blog-Post

Hör auf, Bearer Tokens wie Haustürschlüssel zu benutzen

Du hast eine API gebaut. Du hast sie mit OAuth 2.0 geschützt. Du nutzt JWTs. Du fühlst dich sicher. Bist du nicht.

Podcast

Datenarchitekturen

Von Data Warehouse bis Data Fabric

Blog-Post

Indecent Exposure

Mir ist in den letzten Jahren ein Trend aufgefallen: Teams erstellen zuerst APIs für ihre Single Page Application (SPA) und bieten dieselben Endpunkte dann anderen Teams für die Systemintegration an. Aus meiner Sicht ist das eine schlechte Praktik, und du solltest es dir zweimal überlegen, bevor du das tust. In diesem Blogpost erkläre ich, warum.

Blog-Post

Was ECST-Events, Domain Events und ECST wirklich sind

„ECST-Event", „Domain Event", „ECST" – diese Begriffe fallen in fast jeder Diskussion über Event-Driven Architecture und Domain Driven Design. Erstaunlich oft haben in der Praxis verschiedene Leute ein unterschiedliches Verständnis davon.

Podcast

Risikomanagement für Software-Architekt:innen

Von Vendor Lock-in bis KI-Systemen

Blog-Post

OpenProject: Eine Alternative zu Jira?

Mein Kollege Nicolas Inden zeigte in seinem Artikel "Jira Data Center mit KI-Features nutzen“, wie man eine selbst betriebene Jira-Instanz mit einem KI-Modell verbindet. Ein Punkt sticht dabei heraus: Atlassian unterstützt Jira Data Center nur noch bis Anfang 2029. Danach endet der Support. Der Verkauf von Datacenter-Lizenzen an Neukund:innen wurde sogar schon Ende März 2026 eingestellt. Was tun wir also, wenn wir nach 2029 nicht in die Jira Cloud zurückkehren wollen bzw. uns jetzt schon von Jira lösen wollen?

Podcast

Nebu: Self-made Souveränität

Ein Rezept zum DI.DAY

Blog-Post

RAG und Fine-Tuning

Gemeinsam stark

Blog-Post

Die 1%-Methode für Code und Architektur: Modernisierung als Gewohnheit

„Wir wollen ja modernisieren, aber das Tagesgeschäft kommt immer dazwischen." Diesen Satz höre ich in Kundengesprächen jede Woche. Das Problem ist nicht der Wille, sondern die Vorstellung, dass Modernisierung ein Projekt sei. In diesem Beitrag zeige ich, warum kontinuierliche Modernisierung als tägliche Team-Gewohnheit funktioniert, wo individuelle Vorsätze scheitern und wie zehn Minuten am Tag über Monate eine Architektur entstehen lassen, die ein Big-Bang-Projekt nie hinbekäme.

Blog-Post

Nebu: Self-made Souveränität

Open-Source-Alternativen zu Slack gibt es viele. Echte Souveränität liefert keine davon. Community Editions sind bewusst so reduziert, dass kein Unternehmen sie produktiv einsetzen kann, und Enterprise-Features stecken hinter kommerziellen Lizenzen. Dieser Artikel zeigt, warum „selber bauen” heute keine Utopie mehr ist, sondern eine realistische Option für jeden, der eine Produktvision und etwas Do-it-yourself-Mut mitbringt.

Podcast

Architekturentscheidungen im Team ermöglichen

Die Architektenrolle als Facilitator

Podcast

Produktdenken für Plattformteams

Wie interne Plattformen echten Business-Mehrwert liefern

Blog-Post

Data Products richtig schneiden

Wenn Data Products falsch geschnitten werden, führt das fast zwangsläufig zu Integrationsproblemen, unklarer Verantwortung und doppelter Logik. Dieser Leitfaden bietet praxisnahe Heuristiken, um Data Products in der richtigen Größe zu schneiden.

Blog-Post

Neuland reloaded

Podcast

Worst of Breed

Mit der Blockchain Cookie-Handling implementieren

Blog-Post

Jeder kann Architekt sein!

Und jede natürlich auch. In diesem Artikel zeige ich, dass die Architektenrolle andere Kompetenzen verlangt, als viele annehmen.

Blog-Post

Spec-Driven Architecture: Wenn Agenten bauen, muss Architektur sprechen

SDD beschreibt, wie ein System entsteht. SDA beschreibt, wie Systeme zusammenhalten

Blog-Post

Ein Überblick der AI-assistierten Softwareentwicklung in 2026

Birgitta Boeckeler (ThoughtWorks), Heinrich Hartmann (Zalando) und Sven Johann haben sich über den aktuellen Status der AI-assisted Software Entwicklung unterhalten: was ist wirklich Wichtiges in 2025 passiert? Welche stabilen Muster können wir ableiten? Was gibt Orientierung und Einordnung? Und natürlich ein paar Einblicke in den Future of Software Engineering Retreat in Utah an dem Birgitta teilgenommen hat. Die Unterhaltung gibt es natürlich auch als Podcast. Dieser Artikel ist aber eine menschlich kuratierte Zusammenfassung.

Blog-Post

Deine Datenbanktabelle ist eine schlechte API

Eine gemeinsam genutzte Datenbanktabelle wirkt wie die ultimative Abkürzung: kein API-Design, keine Verträge – nur ein Schema. Der Haken: Diese Bequemlichkeit wird über kurz oder lang zum Bumerang. Sie verwischt Grenzen, bremst Veränderungen aus und macht die unabhängige Weiterentwicklung unnötig schwer. Dieser Artikel zeigt, warum Tabellen (und datenmodellnahe „generierte APIs“) so verlockend sind – und warum sie selten als Integrationsgrenze taugen.

Podcast

EU-Data Act für Digitale Dienste

Was Anbieter und Konsumenten jetzt vorbereiten müssen

Blog-Post

Leave It Better Than You Found It

„Lass den Code besser zurück, als du ihn vorgefunden hast.“ Dieser Rat, auch bekannt als Scout Rule, klingt simpel – aber wie sieht das eigentlich in der Praxis aus? Dies ist die Geschichte davon, wie ich diesem Prinzip gefolgt bin, dabei einen überladenen Controller aufgeräumt habe und wie uns dies völlig unerwartet geholfen hat, neue Anforderungen schnell und mit minimalem Aufwand umzusetzen. Eine kleine Lektion in guter Gewohnheit und kontinuierlicher Architekturarbeit.

Podcast

Kontinuierliche Architekturarbeit

Wissen explizit machen

Blog-Post

Why not scatter @Transactional everywhere?

Podcast

Resilienz

Prozesse, Kultur und Technik

Blog-Post

Digitale Souveränität durch Standardsoftware erreichen

Digitale Souveränität wird im Kontext von IT-Systemlandschaften häufig mit Autarkie gleichgesetzt – also der völligen Unabhängigkeit von Dritten. Nach diesem Gedankenmodell wäre ein Unternehmen, das alle Anwendungen selbst entwickelt und betreibt, der Inbegriff eines digitalen Souveräns. Doch greift diese Vorstellung wirklich?

Podcast

20 Jahre arc42

Dokumentation im Wandel

Blog-Post

Der Weg zur heterogenen Cloud Plattform

Die digitale Transformation bringt für Unternehmen sowohl Herausforderungen als auch Chancen mit sich. Um zukunftssichere und flexible IT-Infrastrukturen zu schaffen, setzen immer mehr Unternehmen auf Multi-Cloud- oder hybride Cloud-Strategien. Hierbei geht es nicht nur um Kostenreduktion, sondern auch darum, innovative Dienste verschiedener Anbieter mit regulatorischen Anforderungen – insbesondere im Bereich Datenschutz – in Einklang zu bringen. Dieser Artikel zeigt Ihnen, wie Sie mit gezielten Integrationsstrategien die Vorteile von Multi-Cloud nutzen können, um Ihre bestehende Infrastruktur zu optimieren, technische Abhängigkeiten zu reduzieren und dabei den geschäftlichen Erfolg langfristig zu sichern.

Blog-Post

Governance-Methodik für digitale Souveränität

In einer zunehmend vernetzten Welt, in der digitale Infrastrukturen das Rückgrat unserer Wirtschaft und Gesellschaft bilden, rückt das Thema der digitalen Souveränität immer stärker in den Fokus. Für Entscheider:innen im deutschsprachigen Raum geht es dabei um weit mehr als die reine Auswahl von Cloud-Anbietern. Es geht um strategische Handlungsfähigkeit, Resilienz und die Fähigkeit, die eigene digitale Zukunft aktiv zu gestalten. Dieser Artikel beleuchtet, wie eine robuste Governance-Methodik Unternehmen dabei unterstützen kann, digitale Souveränität nicht nur zu verstehen, sondern auch praktisch umzusetzen – ohne dabei Komfort oder Innovationskraft einzubüßen.

Blog-Post

Digitale Souveränität: Warum die Architektur zählt und wie Sie Ihr Unternehmen resilient machen

Podcast

Cloud Migrationsstrategien

6Rs in der Praxis

Blog-Post

Technische und andere Schulden in IT-Systemen

Dieser Artikel beleuchtet verschiedene Formen technischer Schulden, die IT-Teams bremsen – oft unbemerkt und weit über schlechten Code hinaus.

Blog-Post

Mobile Portale mit HATEOAS und Self-Contained Systems

Blog-Post

Updating OWASP’s Microservice Security Cheat Sheet: Practical Considerations & Recommendations

Turning principles and patterns into practice — just as promised.

Blog-Post

Von Datenfriedhöfen zu Wissenslandschaften

Europa sitzt auf riesigen öffentlichen Datenschätzen – doch ihr Mehrwert bleibt oft ungenutzt. Ursache sind fragmentierte Portale, inkompatible Schnittstellen und die wachsende Abhängigkeit von außereuropäischen Plattformen, die Innovationen ausbremsen. Während sich neue industrielle Datenräume etablieren und den sicheren wie souveränen Austausch sensibler Informationen ermöglichen, bleiben öffentliche und industrielle Datenwelten weitgehend voneinander getrennt. In diesem Artikel erfahren Sie, wie Künstliche Intelligenz (KI) und das Model Context Protocol (MCP) dabei helfen können, diese Silos zu verbinden und Europas Weg von Open Data zu Open Knowledge zu ebnen – für digitale Souveränität und mehr gesellschaftlichen Nutzen.

Blog-Post

Updating OWASP’s Microservice Security Cheat Sheet: Decision Dimensions for Authorization Patterns

Blog-Post

Pragmatische Architekturdokumentation für Entwicklungsteams

Eine gut gepflegte Architekturdokumentation ist nützlich, gerade auch für die Entwickler:innen eines Softwaresystems. Sie hilft nicht nur beim Verständnis, sondern sorgt auch dafür, dass sich wichtige Sachverhalte reflektiert diskutieren und klären lassen.

Podcast

Kopplung

Zwischen Abhängigkeit und Autonomie

Blog-Post

Digitale Souveränität – Ein Definitionsversuch

Blog-Post

Updating OWASP’s Microservice Security Cheat Sheet: Identity Propagation Patterns

Without trustworthy identity propagation, even strong initial authentication can be undermined — weakening trust boundaries and ultimately impairing the system’s ability to make reliable authorization decisions.

Blog-Post

Updating OWASP’s Microservice Security Cheat Sheet: Authentication Patterns

Without knowing who the subject is, without verifying its identity, there is only a limited way to perform meaningful access decisions.

Blog-Post

Updating OWASP’s Microservice Security Cheat Sheet: Core Concepts

Blog-Post

What’s Wrong with the Current OWASP Microservice Security Cheat Sheet?

Modern microservice architectures require evolving security practices. Yet popular resources like the OWASP Microservice Security Cheat Sheet are starting to show their age and need a fresh look.

Podcast

Kohäsion

Wie viel Zusammenhang braucht ein Modul?

Blog-Post

CIO-Fragestellungen zur digitalen Souveränität

Mit Enterprise Architektur geopolitische Risiken meistern

Blog-Post

Updating OWASP’s Microservice Security Cheat Sheet: Authorization Patterns

Authorization patterns explain how distributed systems organize their access control — where and how decisions happen, where policies live — and influence, in turn, how identities and related attributes travel between components.

Podcast

Testpyramide oder Testdiamant?

Welche Automatisierungsstrategie passt zu meinem Kontext?

Blog-Post

Soziotechnische Architekturen: Informalität vom Bergbau bis heute

Blog-Post

Enabling von Stakeholdern als Erfolgsfaktor

Soziotechnische Architekturen berücksichtigen sowohl technische als auch menschlich-organisatorische Aspekte und fördern deren zielgerichtete Zusammenarbeit. Um die erfolgreiche Ausgestaltung und Implementierung dieser Systeme zu gewährleisten, ist es entscheidend, die Stakeholder aktiv einzubeziehen und ihre Interessen zu adressieren. In diesem Artikel beleuchten wir, warum das Enabling von Stakeholdern eine Schlüsselfunktion in soziotechnischen Projekten darstellt und wie Sie diesen Ansatz gezielt vorantreiben können.

Blog-Post

Wieviel Denken erträgt ein Team?

Der Begriff Cognitive Load wird seit einigen Jahren regelmäßig verwendet, wenn es um Strukturen von Teams, Rollen und Aufgabenverteilung in IT-Organisationen geht. In der Diskussion wird häufig wenig zwischen den unterschiedlichen Zwecken der IT-Organisationen unterschieden, ebenso basiert die Diskussion oft auf einem stark reduzierten Konzept von Cognitive Load.

Blog-Post

Interne Entwicklungsplattformen – Shift Down statt Shift Left

Blog-Post

Vergesst die Menschen nicht

Auf dem Papier ist die Architekturvision perfekt. Alle drängenden Defizite der bestehenden Architektur werden adressiert, die Architektur ist optimal auf die Geschäftsdomäne zugeschnitten, viel mehr Arbeit kann zukünftig in einem Team bleiben. Endlich werden wir höheren Speed-to-Market genießen und einen deutlichen Rückgang der (nicht wertschöpfenden, langweiligen) Koordinationsarbeit zwischen Teams haben. Sicherlich werden alle sofort erkennen, wie viel besser unsere neue Architekturvision ist. Pustekuchen.

Podcast

Jetzt doch wieder ein Monolith/Modulith?

Die Architekturfrage neu gestellt

Blog-Post

Soziotechnische Architektur als Wettbewerbsvorteil

Blog-Post

Bringt eure Schafe ins Trockene: Tipps für politische Risikovorsorge

Eines vorweg: Keine Panik! Das ist aktuell wichtiger als sonst. Leider hat sich die Welt in den letzten Monaten drastisch verändert, sodass nun ein neues Risiko aufgetaucht ist: Die US-basierten Cloud-Dienste, die uns viel ermöglichen, die den Betrieb von Anwendungen so vereinfacht haben und viele Innovationen ermöglichen, könnten auf einmal gegen uns verwendet werden. Sei es politischer Machtmissbrauch oder eskalierender Drang nach Reichtum. Dies ist ein komplett neues Risiko, das auf uns alle in Europa zukommt.

Blog-Post

Digitale Souveränität

Digitale Souveränität bedeutet letztlich, dass Europa die Kontrolle über seine digitale Zukunft behält – technologisch, wirtschaftlich und regulatorisch. Für Unternehmen ist dies nicht nur ein politisches Schlagwort, sondern ein handfester Faktor für Risiko- und Erfolgsbewertung. Doch warum genau sollten Unternehmen bei Entscheidungen zur digitalen Transformation den Aspekt der europäischen Souveränität berücksichtigen?

Blog-Post

Von Legacy-Monolithen zu Self-contained Systems

Blog-Post

Gängige Methoden im Umfeld soziotechnischer Architekturen

In der Ära der Digitalisierung und Modernisierung stehen Unternehmen vor der Herausforderung, sich nicht nur technologisch, sondern auch organisatorisch optimal auszurichten. Soziotechnische Architekturen spielen dabei eine Schlüsselrolle, da sie den Fluss von Arbeit, die Zusammenarbeit zwischen Teams und die Integration technischer und sozialer Systeme in den Fokus rücken. Dieser Artikel beleuchtet zwei zentrale Ansätze – Team Topologies und Domain-Driven Design (DDD) – und zeigt, wie sie Unternehmen helfen können, mit bewusster soziotechnischer Architekturarbeit zu starten.

Blog-Post

Plattformen, Teams und APIs: Wie passt das zusammen?

Ein großer Trend der letzten Jahre ist das Platform Engineering, da viele Organisationen an effizienteren und schnelleren Entwicklungspraktiken interessiert sind. Der Begriff hat sich seit 2018 etabliert, insbesondere nach einem einflussreichen Artikel von Evan Bottcher[1]. Betrachtet man die Ursprünge dieses Konzepts, erhält man interessante und aufschlussreiche Einblicke in die Relevanz von Platform Engineering und mögliche zukünftige Entwicklungen. 1  ↩︎

Podcast

Vielschichtigkeit von Plattformen

Von Infrastruktur bis Business – eine Einordnung

Blog-Post

Canvas 101

Steckbriefe sind kompakt, strukturiert und liefern gezielte Informationen – ideal, um sich schnell einen Überblick zu verschaffen. Ein Canvas funktioniert genauso, nur für IT-Projekte. Ob Geschäftsmodell, Architektur oder Teamkommunikation: Mit einem Canvas halten Sie die wesentlichen Aspekte strukturiert und übersichtlich fest.

Blog-Post

Bessere APIs, aber wie?

API Linting verbessert die Qualität einzelner APIs und hilft, Design-Standards in Organisationen zu etablieren und zu unterstützen. Spectral als das populärste Linting Tool hat eingebaut Regeln und unterstützt selbstgeschriebene Regeln. Vor allem in grösseren Organisationen hilft API Linting, Hilfestellung und Automatisierung beim API-Design zu unterstützen.

Blog-Post

APIs als strategische digitale Bausteine

APIs, Optionalität, und die Wissenschaft glücklicher Zufälle

Blog-Post

Back to Basics: Gute Architektur muss nicht „trendy“ sein

Schlägt man ein IT-Magazin oder das Programm einer IT-Konferenz auf, springt dem Leser sofort der Hype ins Gesicht: Gestern waren es Microservices, die uns vor den zu groß geratenen Monolithen retten werden, heute ist es die generative KI, die als Heilsbringer oder Unheilstifter stilisiert wird. Dabei ist es auch ohne dieses Hintergrundrauschen nicht einfach, gute Architekturentscheidungen zu treffen.

Podcast

Die Reise der Zalando Reliability Organisation

Zu Gast: Heinrich Hartmann, 
Principal SRE
, Zalando

Podcast

INNOQ Technology Day

Programm und Behind the Scenes

Blog-Post

LLM-assisted Abbreviation Mining for Legacy Systems

This blog post shows the process of mining abbreviations and discovering first concepts a COBOL legacy mainframe codebase is made of with the help of Large Language Models. It uses Python, pandas and Claude 3.5 Sonnet to generate insights that can be gathered from such a simple thing like a list of files.

Podcast

Qualitätstaktiken

Für angemessene Qualität sorgen

Blog-Post

Entwickler skalieren anders als Applikationen

Podcast

Was ist Programmieren?

Peter Naur’s „Programming as Theory Building“ heute

Blog-Post

Nicht mehr Open-Source

Was kann man tun, um sich vorab dagegen zu wappnen, plötzlich für eine wichtige Technologie einem Anbieter ausgeliefert zu sein? Kann es auch eine valide Entscheidung sein, das Risiko bewusst in Kauf zu nehmen? Und sind die Risiken, die sich bei Verwendung von Open-Source-Technologien ergeben, per se geringer als bei kommerziellen Alternativen? Wie geht man damit um, wenn eine Technologie, die man verwendet, plötzlich nicht mehr Open-Source ist? Ist es sinnvoll, zu einem Fork zu wechseln, und welche Risiken bestehen dabei?

Podcast

Bootcamp Softwarearchitektur

Die iSAQB-Advanced-Prüfung

Blog-Post

API gut, alles gut

Unternehmen streben häufig eine Modularisierung (wie durch Microservices) an, die Teams unabhängiger voneinander arbeiten lässt. Dabei ist aber ein reines Aufteilen der Applikation in verschiedene Module/Container/Bausteine nicht ausreichend. Die Abhängigkeit oder Unabhängigkeit entscheidet sich vielmehr mit der Gestaltung der Schnittstelle, genauer: Mit der Frage, ob die gewählte Schnittstelle fachliche Implementierungsdetails preisgibt oder diese versteckt.

Podcast

Backstage

Erhöhte Development Experience

Podcast

Kultur der Architekturarbeit

Vernetzung und Dialog zwischen Teams

Blog-Post

Rate Limiting with Spring Boot, Bucket4j, and Redis

Let’s implement rate-limiting protection for multiple Spring Boot server instances using bucket4j and redis to have the solution on application level.

Blog-Post

Rate Limiting with Spring Boot

Let’s implement rate-limiting protection for your Spring Boot server without the need for any additional dependencies beyond those included in the Spring Boot Starter package.

Podcast

Architecture Antipatterns

Von guten Ideen und Kipppunkten

Podcast

Architektur-Reviews

Systematisch Risiken und Probleme aufdecken

Blog-Post

Technologien zur Integration von Services

Im Zuge einer internen Studie haben wir mehrere INNOQ Berater*innen nach ihren Erfahrungen in aktuellen oder vergangenen Entwicklungsprojekten befragt. Ein interessantes Thema war dabei die Integration von Microservices und Self-Contained Systems (SCS). Um bessere Skalierbarkeit, stärkere Resilienz und losere Kopplung zu ermöglichen, wird in verteilten Systemen häufig auf asynchrone Kommunikation gesetzt. In diesem Beitrag erfahrt ihr, welche Erkenntnisse wir in den Gesprächen erlangt haben.

Podcast

Architecture Communication Canvas

Dokumentation auf einer Seite

Blog-Post

Schema Evolution

Bei der Benutzung von Kafka wird häufig ein Schema definiert und benutzt, das die verwendeten Datenstrukturen spezifiziert. Da Software im Laufe der Zeit stetig weiterentwickelt wird, ist es irgendwann notwendig das Schema anzupassen. Dieser Artikel erörtert Ansätze, die sich dabei bewährt haben und Hilfsmittel, die verwendet werden können, um eine solche Schema Evolution durchzuführen.

Blog-Post

Micro Frontends With Ionic And Capacitor

We planned and set up a micro frontend architecture using Capacitor and Ionic. In this article, I talk about some of the challenges we faced and the ways we solved them.

Blog-Post

Mit Reviews in Legacy-Situationen orientieren

Blog-Post

Grundlagen der Softwarearchitektur: Teil 5

In dieser (fünften) Folge der Mini-Serie zu Softwarearchitektur verlassen wir die kleinen bis mittelgroßen Systeme, und werfen einen Blick auf große, riskante und komplexe Projekte. Sie können das als „Skalierung" der Rolle Softwarearchitektur betrachten.

Blog-Post

Grundlagen der Softwarearchitektur: Teil 4

In dieser (vierten) Folge der Mini-Serie zu Softwarearchitektur klären wir, wer denn die Architekturaufgaben erledigen könnte, die ich in der vorigen Folge vorgestellt habe. Dazu stelle ich einige mögliche Rollenausprägungen für Softwarearchitektur mit ihren jeweiligen Vor- und Nachteilen vor.

Blog-Post

Grundlagen der Softwarearchitektur: Teil 3

Aufgaben und Tätigkeiten - Wie geht das?

Blog-Post

Grundlagen der Softwarearchitektur: Teil 2

Willkommen zum zweiten Teil der Mini-Serie zu Softwarearchitektur.

Blog-Post

Grundlagen der Softwarearchitektur: Teil 1

Willkommen zum ersten Teil der Mini-Serie zu Softwarearchitektur. Wir fangen mal bei unserem Namensvorbild an - denn viele Menschen denken beim Stichwort Architektur vermutlich zuerst an Gebäude.

Blog-Post

Sparsame Dokumentation – Neu gedacht

Der Architecture Communication Canvas

Blog-Post

Keine zukunftssicheren Architekturen!

Architektur: Schon der Begriff strahlt Stabilität aus. Also sollte eine gute Architektur vermutlich zukunftssicher sein. Aber genau dieses Ziel führt oft zu Problemen. Ist es also besser, keine zukunftssicheren Architekturen zu entwerfen?

Blog-Post

Evolving software like an orchardist

Software systems are usually larger, overgrown structures that developers need to bring back into shape after some time. However, creating an overview of the sprawling conglomerate of software components is challenging, let alone developing a clear plan for moving on. This blog post uses analogies from pruning apple trees to show developers how to evolve their software systems using a value-based approach.

Blog-Post

Draw The Diff

Blog-Post

What is Sustainable Software?

Environmental sustainability is a very important issue, but software is something virtual, so it doesn’t seem to have an impact, right? Wrong! As software creators, we have a significant impact and can make a difference by incorporating the principles of eco-friendly software development into our understanding and practices.

Blog-Post

Shortcomings of ISO 25010

Published in 2011, the ISO 25010 standard on software product quality lacks pragmatism and practical applicability. Terms like scalability, deployability, energy efficiency, safety, or code quality are missing. This article explains these shortcomings and shows that even the (draft) update from 2022 still needs polishing…

Blog-Post

Behaviour over structure

Podcast

Advent of Code

25 weihnachtliche Programmier-Rätsel

Podcast

Nachhaltige Web-Architektur

Ständige Verfügbarkeit – Muss das sein?

Podcast

Wardley Maps

Softwarelandschaften kartographieren

Blog-Post

Sparsame Dokumentation

Ich weiß – Dokumentation ist nicht Ihr Lieblingsthema. Deswegen bekommen Sie hier ein paar Tipps für schmerzfreie Dokumentation. Die hier vorgestellten Ideen sparen Ihnen wertvolle Zeit, sowohl bei Erstellung als auch Pflege der Dokumentation. Sie funktionieren für jede Art von Softwaresystem, unabhängig von Werkzeugen, Technologien und Entwicklungsansätzen.

Blog-Post

1×1 guter Architekturdiagramme

Sie wollen oder müssen Architektur dokumentieren und möchten dafür grafische Darstellungen verwenden? Sie wünschen sich verständliche Diagramme, die auch zukünftig noch leicht änderbar sind? Sie möchten, dass Ihre Diagramme für unterschiedliche Zielgruppen nützlich sind? Und wenn Sie ganz ehrlich sind, wollen Sie dieses Doku-Zeugs in möglichst kurzer Zeit erledigen, damit Sie sich wieder anderen Dingen zuwenden können.

Blog-Post

Der Kickstart für Softwarearchitektur

Rein in die Praxis!

Blog-Post

Documenting software architecture with arc42

arc42 is a template for architecture communication and documentation. It is a proven, practical and highly pragmatic approach and takes the pain out of documentation.

Blog-Post

cards42 English edition

Finally, cards42 is available in English! The cards42 project supports software developers in your daily work with software architectures. 30 cards provide brief food for thought for stuck situations and help shed new light on difficult challenges. This article provides detailed explanations as well as the background and further information about the cards.

Blog-Post

Principles of technical documentation

Blog-Post

Data Mesh to Go: How to Get the Data Product

You know what a data mesh is? You understand its basic principles? But you don’t know how on earth to get the data product? Then I will show you how to extract your data product from your Domain-driven Design (DDD) artifacts.

Blog-Post

HTTP-Feeds

Für asynchrone Schnittstellen braucht es nicht immer Apache Kafka oder RabbitMQ. Sie lassen sich auch ohne Middleware einfach über HTTP-APIs gestalten.

Blog-Post

Quality Driven Software Architecture - Revised

Getting your product quality right

Blog-Post

What’s in a name: Legacy

The term „legacy” has a negative connotation in IT, and stands for an old, somehow bad piece of software. In real-life, legacy has a completely different and often positive meaning.

Blog-Post

Innovation on steroids - Teil 2

Ging es in Teil 1 von „Innovation on Steroids” allgemein um die Innovationskraft von Machine Learning und die Identifizierung von ML Use Cases, beschäftigen wir uns im zweiten Teil mit der Frage, wie wir herausfinden, wo sich der Einsatz von ML/AI lohnt und wie wir danach strukturiert vorgehen.

Podcast

Ist Domain-driven Design überbewertet?

Goldenes Kalb oder „nur“ Werkzeug?

Blog-Post

Innovation on steroids - Teil 1

Immer mehr Firmen setzen auf die Innovationskraft von Machine Learning und KI. Aber nicht jedes Problem lässt sich mit dem Einsatz von ML-Technologien lösen. Wie also kann man geeignete ML Use Cases identifizieren?

Blog-Post

Große Systeme mit Domain-driven Design entwerfen

Wer die Konzepte von DDD richtig einzuordnen weiß, kommt mit einem strukturierten Ansatz recht einfach zu guten Ergebnissen.

Blog-Post

What’s in a Name: Qualität

Blog-Post

Is Domain-driven Design overrated?

Domain-driven design (DDD) is a useful approach that provides excellent guidelines for modeling and building systems, but it is a means to an end, not an end in itself. While the concepts are valid, you lose a lot if you limit yourself to using them only: There actually is a life beyond DDD.

Blog-Post

Domain-driven Design und Bounded Context

Die Konzepte von DDD und Bounded Context sind in der Praxis komplizierter, als es auf den ersten Blick erscheint.

Blog-Post

The art of software reviews

Probleme und Risiken in Software zielsicher identifizieren

Blog-Post

Die VENOM Story

Sie erfahren anhand eines (komplett anonymisierten), realen Beispiels, wie die inkrementelle Modernisierung eines historisch gewachsenen Systems funktionieren kann. Das riesige, gewucherte System VENOM von >2 Mio Lines-of-Code zu modernisieren oder komplett neu zu schreiben - vor dieser schweren Entscheidung stand die (fiktive, aber sehr realitätsnahe) Firma SAMM Inc.

Blog-Post

Gut gesiebt

Für die komplexe Infrastruktur großer Microservice-Umgebungen versprechen Service Meshes eine einfache Lösung. Aber nur mit dem Blick für die richtigen Eigenschaften lässt sich der beste Ansatz für die eigene Architektur finden.

Blog-Post

Wenn Customizing zur Legacy wird

Analyse eines ERP-Systems mit Wardley Maps und strategischem Domain-driven Design

Blog-Post

Architektur, die mitwächst

Architektur sollte wachsen und gepflegt werden. Die Geschichte eines Shops.

Blog-Post

Domain-driven Design to the code

Beim strategischen Domain-driven Design fokussieren wir uns in der Modellierung sehr stark darauf, die Fachlichkeit möglichst passend zu identifizieren und im Design abzubilden. Leider verlieren wir Entwickler bei der technischen Umsetzung diesen fachlichen Fokus dann aber allzu oft wieder aus den Augen und lassen uns (zu) stark vom neusten hippen Framework begeistern, leiten und beeinflussen und verschmutzen so das fachliche Modell mit unzähligen Technologien. Die Ideen der Onion Architecture und der Einsatz von Stereotypen in der Code-Basis erlauben es, eine Trennung des fachlichen Code vom technisch bedingten Code zu erreichen. Dieser Artikel beleuchtet diese Konzepte und zeigt auf, wie dank Stereotypen in Verbindung mit den taktischen Mustern von DDD diese Trennung konkret erreicht werden kann.

Blog-Post

Kubeless - FaaS auf Kubernetes

Blog-Post

Agile Architekturarbeit

Moderne Softwarearchitekturarbeit folgt selbstverständlich der agilen Arbeitsweise in Entwicklung und Projektmanagement.

Blog-Post

Architektur-Reviews remote durchführen

Software Reviews lassen sich dank moderner Arbeitsmittel remote durchführen und schaffen dabei auch neue Möglichkeiten.

Blog-Post

Glücklich ohne Service Mesh

Die Basis für sinnvolle Architekturentscheidungen ist die Auseinandersetzung mit dem Problem und ein guter Überblick über die Optionen.

Blog-Post

Identifikation von Qualitätsanforderungen mit Quality Storming

Quality Storming ist ein Workshop zur Identifizierung von Qualitätsanforderungen auf der Grundlage eines Qualitätsmodells wie beispielsweise der ISO 25010 Norm. Die Methode setzt dabei auf Methoden und Ideen des Collaborative Modeling, das in der Domain-driven Design Community populär ist. Ein wichtiger Aspekt in diesem Zusammenhang ist die Zusammenarbeit verschiedener Stakeholder und Abteilungen.

Blog-Post

Command & Control, SAFe, Domain-driven Design, and Release Trains

Large complex projects are difficult to manage. Software release trains are one solution to coordinate such projects. But the approach is not a great fit for self-organization and modern management ideas.

Blog-Post

Warum Domain-driven Design?

Fachlich sinnvoll schneiden

Blog-Post

Warum Quarkus.io _nicht_ geiler ist als Spring

Quarkus.io ist ein neues Framework, das optimiert ist, um Java Anwendungen Cloud Native laufen zu lassen. Sollte ich meine Java-Anwendungen daher jetzt nicht mehr in Spring Boot sondern in Quarkus.io entwickeln?

Blog-Post

Brauchen asynchrone Microservices und SCS ein Service Mesh?

Service Meshes heben viele Randfunktionen von Microservices wie Monitoring, Routing und Sicherheit in die Infrastruktur und sind entsprechend beliebt in Microservice-Architekturen - doch schaffen sie diesen beachtlichen Mehrwert auch bei asynchroner Kommunikation oder in Self-contained Systems?

Blog-Post

Architektur­entscheidung im agilen Team

Zusammen Architektur machen

Blog-Post

Software-Architektur: Worauf es ankommt

Die Architektur definiert die Struktur eines Software-Systems und ist zentral für den Erfolg eines Projekts. Deswegen ist Software-Architektur so wichtig. Aber in Wirklichkeit ist Software-Architektur noch viel mehr und eine erfolgreiche Software-Architektur erfordert viele, teilweise überraschende Maßnahmen.

Blog-Post

code-your-model

Some time ago I was looking for some simple, lightweight tool to document a complex, modularized model. I was not able to find anything that fits my requirements or expectations, so I came up with my own idea. Today, a good 15 months later, I want to introduce it to you.

Blog-Post

Alle 11 Minuten verliebt sich ein Microservice in Linkerd

Das Istio Service Mesh hat einen sympathischen Konkurrenten

Blog-Post

Cloud-native, Microservices, Domain-driven Design, Kubernetes

Software-Entwicklung unterliegt schon immer Hypes. Im Moment reden alle über Microservices und Cloud-native. Aber helfen diese Ansätze wirklich weiter?

Blog-Post

JavaScript? Gern, aber bitte in Maßen

Die Vorteile eines klassischen Architekturansatzes für Web-Anwendungen

Blog-Post

Warum Microservices scheitern

Blog-Post

Das Service Mesh

Die Stärke einer Microservice-Architektur ist die lose Kopplung der Module. Und gleichzeitig ist es auch ein großer Nachteil, denn in jedem Microservice müssen Funktionen wie Monitoring, Tracing und Circuit Breaking erneut gelöst werden. Ein Service Mesh verspricht, viele der Funktionen in die Infrastruktur zu ziehen. So wird es endlich kinderleicht, Microservices zu entwickeln und auch zu bändigen - oder vielleicht doch nicht?

Blog-Post

Optionen der Frontend-Integration

Die Integration von Daten und Funktionalität im Frontend ist ein mächtiges aber trotzdem relativ selten beleuchtetes Thema. Dieser Artikel soll versuchen gängige Muster aufzuzeigen und kurz mögliche Vor- und Nachteile zu benennen.

Blog-Post

Pragmatisch zum Praxiseinsatz von Machine Learning in der Cloud

Herausforderung Betrieb

Blog-Post

cards42

Die Mitmach-Karten von cards42 unterstützten bei der täglichen Arbeit mit Softwarearchitekturen. Die Karten geben kurze Denkanstöße für festgefahrene Situationen und helfen, neues Licht auf schwierige Herausforderungen zu werfen. Dieser Artikel bietet ausführliche Erklärungen sowie die Hintergründe und weitere Informationen zu den Karten.

Blog-Post

Event Storming und Domain Story Telling - Ein Vergleich

„Knowledge Crunching” nennt Eric Evans die wichtigen Gespräche mit Domänenexperten, die in seinem Buch „Domain-driven Design” zu tieferem Verständnis der Fachdomäne führen sollen. In den letzten Jahren haben sich für diese Gespräche zwei moderne Workshopformate etabliert: „Event Storming” und „Domain Storytelling”.

Blog-Post

Cooking with Onions: Inward-Pointing Arrows

Blog-Post

Domain Events vs. Event Sourcing

Weshalb Domain Events und Event Sourcing nicht vermischt werden sollten

Blog-Post

Technologien für Microservices

Microservices führen zu neuen Herausforderungen und machen neue technologische Ansätze notwendig. Microservices-Frameworks sind zwar ein Teil der Lösung, aber sicher nicht der wichtigste. Welche Technologien spielen eine entscheidende Rolle?

Blog-Post

Microservices – oder doch nicht?

Alternativen und Nachfolger zum Hype

Blog-Post

Benimmregeln für Architekturen - automatisch geprüft

Softwareentwicklung und automatisierte Tests funktionaler Anforderungen sind in modernen Systemen untrennbar miteinander verbunden. Da ist es nur folgerichtig, wenn die Softwarearchitektur als eminent wichtiger Bestandteil von Applikationen auch einer ordentlichen Qualitätssicherung unterliegt. Wir stellen ArchUnit vor, mit dem Sie auf einfache Weise automatisierte Tests für die Architektur einer Applikation realisieren können.

Blog-Post

Serverless - The Vendor Is Not Your Enemy

Argumente für und gegen Serverless gibt es viele. Dieser Post behandelt konkret das Thema Vendor-Lock-in, welches bei der Entscheidung für oder gegen Serverless häufig diskutiert wird.

Podcast

Microfrontends

Unabhängige Teams im Frontend

Blog-Post

Do We Worship Complexity?

Complexity is the most important challenge in software development. So it is important to always strive to eliminate complexity. But sometimes we worship complexity - and that can make complexity problems unsolvable.

Blog-Post

Prinzipien zur Entwicklung von unabhängigen Systemen

Viele Systeme werden aktuell mit einer Microservice-Architektur geplant und umgesetzt. Da jede Architektur Vor- und Nachteile aufweist, muss die gewählte jedoch auch zum Problem passen. Dieser Artikel zeigt, welchen primären Vorteil eine Microservice-Architektur hat und welche Prinzipien bei der Entwicklung beachtet werden sollten, um diesen Vorteil nicht zu neutralisieren.

Blog-Post

No-Principles Software Architecture

Think for Yourself!

Blog-Post

Code Redundancy or Reuse?

Reuse used to be the holy grail of software development. If developers reuse code, they don’t have to write it again. This should increase productivity significantly. In the meantime, however, some things have changed - and even redundant code has advantages. So avoiding redundancy is also just another trade-off.

Blog-Post

Was ist ein Domain-driven Design Architektur-Kata?

Architektur-Katas sind ein sehr interaktives Trainingsformat. Sie eignen sich hervorragend, um Domain-driven Design (DDD) zu vermitteln.

Blog-Post

OpenID Connect Auth-Proxy

Podcast

50 Tipps

Ratschläge zu Software, Zusammenarbeit und Druckkaramellisierung

Blog-Post

Technical Debt Just Happens

„Technical debt” is a great metaphor to reason about the quality of a software project. But a closer look also reveals some problems and shows approaches how to deal with software quality even better.

Blog-Post

Microservices? Or Rather Monoliths?

After the Hype

Blog-Post

A Playground for Testing OpenID Connect

This post describes how you can set up a development environment in order to play around with your OpenID client implementation. When running your application in a cluster, it can be difficult to test how it will behave behind a load balancer. One factor that can be particularly difficult to test is when you are communicating with an OAuth 2.0 or OpenID Connect server which expects that a request will be redirected back to the same application instance that it came from.

Podcast

Transklusion

Frontendintegration im Web

Blog-Post

Schubladendenken - aber konstruktiv

Verwendung von Stereotypen im Code als Basis für ein gemeinsames Architekturverständnis - und mehr

Podcast

Independent Systems Architecture

Best Practices für Microservices

Blog-Post

Domain Exceptions?

In jedem Softwaresystem kommt es zu Ausnahmesituationen. In der Regel handelt es sich um technische Ausnahmen, die in Java als Exceptions auftreten und behandelt werden. Gibt es aber auch fachliche Ausnahmen, also quasi „Domain Exceptions”? Und ist es sinnvoll, diese in Java als Exceptions zu modellieren? Einige Beispiele aus einem Kundenprojekt zeigen, dass dies häufig nicht der Fall ist.

Blog-Post

dprox – Declarative Reverse Proxy

Blog-Post

Service Mesh und Kubernetes

Zum Betreiben einer Website stellt Kubernetes einige wichtige Ressourcen, wie Service (round robin load balancer), Ingress (Proxy als API Gateway) und Pod (logischer Host) zur Verfügung. Dennoch sind sie nur eine Grundlage. Für komplexere, über Jahre laufende Webportale, ist mehr erforderlich als das. Service Meshes liefern, was den Kubernetes Bordmitteln fehlt.

Blog-Post

FaaS und Kubernetes

Inzwischen gibt es bei den meisten Cloudanbietern die Möglichkeit kleine Codeteile als sogenannte Functions zu hinterlegen. Da kein expliziter Server existiert, dort spart das Kosten. Aber auch sonst bieten Functions eine interessante Abstraktion, deren Vorteile man ebenso gerne innerhalb eines Kubernetes Clusters nutzen möchte.

Podcast

Microservices Praxisbuch

Grundlagen, Konzepte und Rezepte

Blog-Post

DDD mit Onion Architecture

3 Gründe, weshalb Onion Architecture für die Umsetzung von Bounded Contexts nach Domain-driven Design besonders geeignet ist.

Blog-Post

The language of maths is not the language of your business

Abstractions from category theory can be powerful. But there are reasons why you may want to keep your domain model free of them.

Blog-Post

Domain- und Test-driven Development mit Spring Boot 2 Softwarearchitektur

Blog-Post

Proof of Existence via HTTPS

Übliche „Proof of existence” - Konzepte nutzen die Blockchain von Kryptowährungen. Das geht auch einfacher und billiger.

Blog-Post

Evolution statt Verschlimmbesserung

Erweitern, ändern und korrigieren bestehender Software - meistens unter Zeitdruck – führt in vielen Fällen zu schleichendem Verfall. Dadurch werden Änderungen einerseits immer schwieriger, andererseits auch immer teurer und riskanter. Das Open-Source Projekt aim42 (architecture improvement method) setzt genau dort an – mit Praktiken und Patterns für systematische Verbesserung – technologieneutral und leichtgewichtig.

Blog-Post

Vertrauensvolle und angstfreie Kommunikation als Grundlage gelungener Softwarearchitektur

Blog-Post

Probleme bei der Einführung von Microservices: Seien Sie vorbereitet!

Nachdem man sich die Frage gestellt hat, warum man Microservices einsetzen will, und diese richtig beantwortet hat – nicht wegen dem Hype oder um als spannendes Unternehmen für Fachkräfte dazustehen –, geht es im nächsten Schritt natürlich darum, Microservices auch einzuführen. Dabei wird man auf jeden Fall auf einige Probleme stoßen. Es gilt, die Zahl der unknown Unknowns zu reduzieren, sodass Sie in Ihren Projekten weniger Überraschungen erleben. Die Probleme teilen sich in vier Bereiche auf: Technik, Prozesse, Schnitt und Menschen.

Blog-Post

What’s in a Name: Evaluate

The term evaluation is often used in the context of system and architecture reviews. In my opinion, this term is often misleading and such activities should be named differently.

Podcast

Domain-Driven Design

Überblick über Strategic und Technical Design mit DDD

Blog-Post

Microservices – der aktuelle Stand

Microservices sind in aller Munde. Gerade bei Software-Entwicklung machen solche Hypes misstrauisch. Schließlich steckt hinter einem Hype oft wenig Substanz. Es ist also Zeit ein erstes Fazit zu ziehen.

Blog-Post

Warum wollen Sie Microservices einführen?

Mit diesem Artikel möchte ich Ihnen die Frage stellen, warum Sie eigentlich Microservices einführen wollen. Denn es ist immens wichtig, sich der Gründe und Ziele bewusst zu sein. Leider habe ich zu oft erlebt, wie die glänzenden, neuen Technologien die eigentlichen Ziele des Unternehmens in Vergessenheit geraten lassen und zum Selbstzweck werden.

Blog-Post

Datenarchitekturen – nicht nur für Microservices

Warum die Behandlung von Daten so wichtig ist

Blog-Post

Innovation Tokens – Gegen Informatikerromantik und Technologieüberflutung

Zu oft werden in Softwareprojekten zu viele neue Dinge gleichzeitig ausprobiert, ohne dass der Business Value erkennbar wäre- und vor allem, ohne die Risiken vorher abzuschätzen. Eine Möglichkeit, die unnötige Technologieüberflutung zu vermeiden, sind Innovation Tokens. Mit diesen lassen sich Innovationen in geregeltere Bahnen lenken und bieten eine Grundlage für weniger emotionale Technologiediskussionen.

Podcast

Self-Contained Systems – Teil 2

Einsatzszenarien und Architekturevolution

Podcast

Self-Contained Systems – Teil 1

Eigenschaften und Umsetzung

Podcast

Event Sourcing und CQRS – Teil 2

Implementierung und Architektur

Podcast

Event Sourcing und CQRS – Teil 1

Vor- und Nachteile sowie Einsatz in verteilten Anwendungen

Blog-Post

Design Patterns: Noch nie so wertvoll wie heute?

Blog-Post

Serverless

Um den Begriff serverless gibt es immer noch hitzige Diskussionen. Einige halten ihn für einen Hoax und setzen ihn mit „useless” gleich, andere schwören darauf, dass serverless bald alle anderen Architekturstile ablösen wird.

Blog-Post

Implementierung einer einfachen Zustandsmaschine (state machine) in Java

Eine simple Zustandsmaschine (state machine) in Java

Blog-Post

Lokale Datenanalyse mit Data Frames

Am Anfang war die Frage

Podcast

Self-contained Systems und Frontend-Integration – Teil 2

Alternativen zu SPAs und Umsetzung von SCS

Blog-Post

arc42 - die Siebte

Das bewährte arc42 Template ist gerade in Version 7 erschienen - mit deutlichen Erweiterungen im Ökosystem. Grundsätzlich bleibt arc42 V7 kompatibel mit den Vorgängerversionen, ist insgesamt noch kompakter und pragmatischer geworden.

Podcast

Self-contained Systems und Frontend-Integration – Teil 1

Eigenschaften und Vor- und Nachteile

Blog-Post

Microservices lieben Domain Driven Design, warum und wie?

Das Buch Domain Driven Design, welches Eric Evans vor gut 13 Jahren publizierte, galt schon seit jeher als herausragende Referenz für die fachlich getriebene Modellierung von IT-Systemen. Mit dem Einzug von Microservices erfährt Domain Driven Design eine Renaissance, denn die beiden Ideen lassen sich wunderbar miteinander kombinieren. Im Laufe des Artikels werden Sie kennenlernen, wie Sie mit Hilfe der Ideen von Domain Driven Design technisch wie fachlich tragfähigen Microservice Landschaften entwickeln können.

Blog-Post

Microservices à la Netflix

Netflix hat in den letzten Jahren sehr interessante Open Source Frameworks wie beispielsweise Eureka, Hystrix oder Zuul via GitHub publiziert. Parallel dazu hat das Spring Team mit Spring Boot und Spring Cloud zwei hoch interessante Module für Cloud basierte Microservice Architekturen veröffentlicht. Wie passen diese beiden Dinge nun zusammen?

Blog-Post

Services: SOA, Microservices und Self-contained Systems

Blog-Post

Self-contained Systems: A Different Approach to Microservices

Microservices are the current hype in the Software Architecture community. However, microservices can be used in many different scenarios to reach different goals. Self-contained Systems (SCSs) are one approach to achieve some of those goals while avoiding many common pitfalls.

Blog-Post

Microservice-Infrastruktur

Die Cloud und darauf aufbauend Microservices haben in den letzten Jahren die Softwareentwicklung stark beeinflusst. Vor allem im Bereich der Infrastruktur tut sich hier auch heute noch einiges. Dabei wird man den Eindruck nicht los, dass jede Woche ein neues Produkt veröffentlicht wird. In diesem Artikel versuche ich, Ihnen durch diesen Dschungel zu helfen.

Blog-Post

Software-Architektur für Innovation

Wie Software neue Umsatzquellen erschließen kann

Blog-Post

The perils of shared code

In this blog article, I want to examine why using a sharing code between microservices may sound attractive in the first place and why it can cause bigger problems than the ones you try to solve.

Blog-Post

Spring Boot für Microservices

Die Implementierung von Microservices stellt im Vergleich zu monolithischen Anwendungen Entwickler vor einige Herausforderungen. Spezialisierte Technologien wie Spring Boot unterstützen die Umsetzung von Microservices und machen so den Projekten das Leben leichter.

Blog-Post

Wie kommt man zu Self-Contained Systems?

Architektur auf mehreren Ebenen

Blog-Post

Requirements Engineering

Im Alltag vieler Softwareprojekte wird Requirements Engineering oftmals nur eingeschränkt berücksichtigt, obwohl es aufgrund seiner nachgewiesenen Wichtigkeit eine Grundvoraussetzung für effiziente Softwareentwicklung ist. Ziel dieses Artikels ist es, die Kernaussagen des Requirements Engineering in Erinnerung zu rufen und ein Modell vorzustellen, das einen vereinfachten Einstieg in das Requirements Engineering im Projektalltag erlaubt.

Blog-Post

Deployment und Monitoring von Microservices

Beim Deployment von Microservices verschwimmen die Grenzen zwischen Mikro- und Makroarchitektur. Während das Team die Mikroarchitektur für jeden Service individuell entscheiden kann, muss man sich bei Makroarchitektur-Themen mit anderen Teams zusammensetzen, um die beste Lösung für Themen zu finden, die mehrere Services betreffen. In diesem Artikel wollen wir uns ansehen, welche Entscheidungen ein Team für sich treffen kann und welche mit anderen Teams abgestimmt werden müssen. Zu diesem Zweck möchte ich beispielhaft den Lernprozess beschreiben, den ich in Teams erleben durfte, die “einfach mal” mit Microservices angefangen haben.

Blog-Post

Microservices - eine Bestandsaufnahme

Erfahrungen, Vor- und Nachteile des Ansatzes

Blog-Post

Software systematisch verbessern

Es ist ein bekanntes Phänomen: Obwohl zu Beginn beim Entwickeln des Projekts alles sauber und ordentlich zuging, degeneriert das System mit der Zeit – das Phänomen der „verfaulenden Software“ schlägt zu. Änderungen werden dann immer riskanter, schwieriger und langwieriger. In der Entwicklung und im Betrieb mehren sich die Probleme, die zu beheben immer mehr Zeit in Anspruch nimmt. Gleichzeitig steigen aber auch Änderungs- und Betriebskosten, während die Zufriedenheit von Entwicklern, (fachlichen) Auftraggebern, Testern, Administratoren und anderen Beteiligen ständig abnimmt. Vermutlich kennt jeder Leser diese Situation: Willkommen in der Legacy-Hölle.

Blog-Post

Zwei Jahre nach dem Tod der Java Application Server

Vor zwei Jahren wurde der Tod der Java Application Server ausgerufen. Zeit also ein Fazit zu ziehen und die Thesen aus dem Artikel einem kritischen Review zu unterziehen.

Blog-Post

What’s in a Name: Architecture

Blog-Post

Nachhaltige Webarchitekturen

Heutzutage gewinnt man leicht den Eindruck, dass es für moderne Webanwendungen nur einen einzig wahren Architekturansatz gibt: REST und Single-Page-Anwendungen (SPAs). Doch ist alles, was REST genannt wird, wirklich REST? Sind REST und SPAs immer die beste Lösung? Um diese Fragen beantworten zu können, sollte man sich anschauen, was REST eigentlich ist, wofür es gedacht ist und ob es möglicherweise auch Alternativen zu SPAs gibt; insbesondere mit dem Blick auf Nachhaltigkeit, also Wartbarkeit und Erweiterbarkeit.

Blog-Post

Der Architektenaufzug: Öfters mal nach oben fahren

In einem Gastbeitrag geht Gregor Hohpe der Frage nach, welche Rolle Softwarearchitekten in Zeiten der Digitalen Transformation spielen, und welche Relevanz diese Aufgabe für die Zukunft von Unternehmen hat.

Blog-Post

ROCA vs. SPA

Comparing two architectural styles with a concrete example

Blog-Post

AWS Lambda

Seit Kurzem gibt es von verschiedenen Cloud-Anbietern Services für die Entwicklung serverloser Event-getriebener Anwendungen in der Cloud: Google (Cloud Functions), IBM (OpenWhisk), Microsoft (Azure Functions) und allen voran AWS Lambda von Amazon. Dieser Artikel beschreibt am Beispiel von AWS Lambda das Programmiermodell und hilft bei der Beantwortung der Frage, ob sich der Einsatz für Ihre Anwendung lohnt.

Blog-Post

Solving the wrong problems

Instead of rushing to an engineering solution to a problem, we would often be better off by lying back and determining the root cause of our engineering problem, which is often an architectural one.

Blog-Post

Java-Web-Frameworks von innen?

Im Maschinenraum

Blog-Post

What’s in a Name: Transparency

The term transparent denotes something translucent, where light can shine through. It is, for example, used in context of economics (transparent markets), meaning markets where much is known by many, and nothing is hidden. Sometimes geeks tend to inverse this meaning, saying transparency where they mean opaqueness. This post illustrates that your favorite XY-framework by no means makes XY transparent for developers.

Blog-Post

Microservices - Agilität durch Modularisierung

Microservice-Architekturen sind der neue Hype. Viele denken: Alles wird einfacher mit diesem Ansatz - Software ist langfristig wartbar, die Entwicklung wird schneller und die Software skaliert besser. Es ist aber an der Zeit für einen detaillierten kritischen Blick.

Blog-Post

Transklusion in Self-Contained Systems

Blog-Post

Why RESTful communication between microservices can be perfectly fine

Recent debates about REST versus message passing in microservice communication have led to some confusion. What is meant with asynchronous communication in this context and why is REST a perfectly valid choice?

Podcast

Redis in der Praxis

Überblick und praktischer Einsatz des schnellen Datenstruktur-Servers

Blog-Post

Terravis

Zwischen Agilität, Veränderungen, neuen Dingen und Komplexität

Blog-Post

Docker - Perfekte Verpackung von Microservices

Die Microservice-Bewegung ist mit viel Schwung gestartet und in großen Unternehmen angekommen. Überall werden Monolithen zerschlagen und durch eigenständige, fachlich definierte Microservices ersetzt. Entwicklungsteams können eigenverantwortlicher und autonomer agieren und damit deutlich schneller Ergebnisse ausrollen. Aus Sicht des IT-Betriebs bringen sie aber auch eine Menge Herausforderungen: Statt weniger großer und etablierter Unternehmensanwendungen, existieren plötzlich Landschaften mit einer Vielzahl an kleinen, sich schnell ändernden Services, die alle konfiguriert und überwacht werden wollen. Eine Container-Technologie wie Docker kann das ideale Mittel sein, um diese Services zu verpacken und auszurollen. Aber welche Probleme löst Docker genau und welche neuen Herausforderungen bringt es mit? In diesem Artikel zeigen wir, für welche Software-Architekturen Docker geeignet ist und wie ein Einsatz von Docker dabei helfen kann, Microservice-Architekturen zu kontrollieren.

Blog-Post

Microservices: Agilität mit Architektur skalieren

Software Architektur beschreibt die Aufteilung von Software-Projekten in Module – aber die Architektur hat nicht nur Auswirkungen auf die Struktur der Software, sondern auch auf die Organisation der Projekte. Microservices machen sich das zu nutze – und sind so eine neue Hoffnung für produktive und nachhaltige Software-Entwicklung gerade auch bei großen Teams.

Blog-Post

What’s in a Name: Consistency

Blog-Post

Microservices und Continuous Delivery: Nur zusammen möglich?

Microservices unterteilen große Systeme in kleine Deployment-Einheiten. Dies macht Continuous Delivery wesentlich einfacher. Sind aber Microservices ohne Continuous Delivery möglich? Und ist Continuous Delivery ohne Microservices umsetzbar? Ist die Kombination eher eine Synergie oder macht sie nur alles noch komplizierter?

Blog-Post

Gegen die dunkle Macht

Ein ganz normaler Tag: Morgens frage ich mich, welche Katastrophe mich heute erwartet. Ich bin einiges gewohnt, aber die letzten Monate wurde es immer schlimmer: Früher gab es nur Fehler im Test oder Schwierigkeiten bei der Entwicklung. Jetzt kommen auch noch Laufzeitfehler dazu, die den Betrieb im Rechenzentrum stören und unsere Endkunden massiv irritieren. Als hätte sich die dunkle Macht gegen uns verschworen – dabei haben wir doch nur ganz normale Anforderungen. Aber sicherlich das schlechteste Softwaresystem der Welt …

Blog-Post

Reliable Web Clients

Blog-Post

Bessere Web-Apps mit HTML5-APIs

Der Begriff HTML5 fasst eine bunte Sammlung aus verfügbaren und geplanten APIs zusammen, auf die im Browser von JavaScript aus zugegriffen werden kann. Einige dieser APIs ermöglichen heute, Anwendungen für den Browser zu realisieren, die vor wenigen Jahren noch Plugins erfordert hätten. Die prominentesten Vertreter sind sicherlich Video oder WebRTC. Zum Beispiel ist heute die Public-Key-Verschlüsselung bereits im Web-Client integrierbar oder das Reagieren auf Sensordaten der Betriebs-Hardware des Browsers möglich. Es folgt eine persönliche Auswahl an etablierten APIs und ein Ausblick auf einige noch recht frische.

Blog-Post

Apache Cassandra

In dieser Kolumne stellen wir Cassandra vor und zeigen, warum die Datenbank quasi beliebig skaliert und höchst performant ist. Cassandra wirkt für Kenner von relationalen Datenbanken auf den ersten Blick recht vertraut, weil hier auch von Tabellen und Spalten die Rede ist und die Abfragen einfachen SQL-Abfragen ähnlich sehen. Dennoch unterscheidet sich Cassandra konzeptionell von relationalen Datenbank-Management-Systemen (RDBMS).

Blog-Post

What’s in a Name: Reactive

Podcast

Twelve-Factor App: Web-Applikationen auf die neue Art

Ein Ansatz für skalierbare, portable und leicht deploybare Web-Applikationen in der Cloud

Blog-Post

Why You Should Avoid a Canonical Data Model

As an enterprise architect, you might be tempted to strive for a canonical data model for your systems’ interfaces. That’s not a good idea.

Blog-Post

Logging konsolidieren und Performance gewinnen

Performance, Durchsatz und Integrität

Blog-Post

Kanonische Architektur-Evolution

Mit dem Entwurf der Softwarearchitektur wollen wir noch vor der Umsetzung die Tragfähigkeit der Software sicherstellen. Wie gut wir die Trägfähigkeit einschätzen können, hängt neben Erfahrungswerten und Kenntnis der eingesetzten Technologien auch davon ab, wie konsistent wir unsere Konzepte tatsächlich implementieren. Wir brauchen also mehr als bloße Wunschvorstellungen über das System; wir benötigen Mechanismen für die konsequente Umsetzung der funktionalen und qualitativen Eigenschaften des Systems.

Blog-Post

Knigge für Softwarearchitekten

Diese Folge unserer Kolumne skizziert mögliche Reaktionen, die Sie bei Reviews (auch genannt Bewertung, Analyse oder Audits) von Softwaresystemen erleben können. Wir beschäftigen uns mit Gegnern und verschiedenen Stufen der Ablehnung.

Blog-Post

Service-oriented Architecture (technisch)

Ein Lehrplan für Architektenwissen rund um serviceorientierte Architekturen

Blog-Post

Warum Soft Skills für Softwarearchitekten wichtig sind

Der Projekterfolg hängt viel stärker von den am Projekt beteiligten Menschen und den Rahmenbedingungen ab als von den eingesetzten Technologien. Erfolgreiche Projektleiter und Softwarearchitekten haben ein Gespür für die Menschen, mit denen sie Projekte machen, und erreichen mit ihnen gesteckte Ziele. Was erfolgreiche Anführer gemein haben, worauf es in der Zusammenarbeit ankommt und wie man selbst so etwas erlernen kann, stellt dieser Artikel vor.

Blog-Post

Hystrix – damit Ihnen rechtzeitig die Sicherung durchbrennt

Sicherungen wurden ursprünglich eingeführt, um die Eskalation einer Situation zu verhindern. Wenn Ihnen ab und zu die Sicherung durchbrennt, ist das deshalb durchaus zu begrüßen, jedenfalls wenn es sich dabei um einen Circuit-Breaker im Sinne von Hystrix handelt. In diesem Artikel möchten wir Ihnen Hystrix vorstellen, eine Bibliothek, die ihnen dabei hilft, die Stabilität ihrer verteilten Anwendung zu verbessern und kaskadierende Fehlerszenarien zu verhindern.

Blog-Post

Zertifizierung für Fortgeschrittene

iSAQB CPSA-A (Advanced)

Blog-Post

Hystrix – Wider den Totalausfall

Michael T. Nygard hat in seinem Buch „Release It!” sehr anschaulich die Folgen von sich fortpflanzenden Fehlern beschrieben. Seine klare Empfehlung lautete, Isolationsmuster wie zum Beispiel Leistungsschutzschalter – engl. Circuit Breaker – in die Software zu integrieren, um Totalausfälle zu vermeiden. Mit Hystrix hat Netflix ein Framework bereitgestellt, das den Einbau von solchen Schaltern vereinfacht. Dieser Beitrag stellt das Framework vor.

Podcast

Wenn Systeme aus dem Ruder laufen

Mit Hystrix für stabile, verteilte Anwendungen sorgen

Blog-Post

Skalierbare Softwaresysteme

Vom Entwickler-Notebook bis zur Serverfarm

Blog-Post

Domain-Driven Design in Clojure

In diesem Artikel setzen wir die Prinzipien des Domain-driven Designs mit Clojure um. Wir stellen die Domäne Rating als Beispiel vor und demonstrieren strategisches sowie taktisches DDD. Wir zeigen, wie sich das Domänenmodell in Clojure implementieren lässt.

Podcast

Grid-Computing

Große Netze für große Probleme

Podcast

Graphdatenbanken

Vor- und Nachteile graphbasierter Datenbanken

Blog-Post

Versionsmanagement auf dem Tanker

In verschiedenen großen Projekten mit festen Releasezyklen hat der Autor bestimmte Situationen ganz ähnlich mehrfach erlebt. Dieser Artikel berichtet von typischen Herausforderungen aus Versionsmanagement-Sicht, die sich in solchen Situationen ergeben und von praxiserprobten Möglichkeiten, sie zu meistern.

Blog-Post

Use-Case-Puzzeln für Fortgeschrittene

Das aktuelle Umfeld in vielen Unternehmen ist sehr dynamisch und herausfordernd. Dieser Trend wird sich aufgrund des wirtschaftlichen Rahmens eher verstärken denn abnehmen. Dies merken auch die Softwareprojekte, die oftmals bestehende Geschäftsprozesse durch Softwarelösungen unterstützen müssen, wobei die notwendigen Umgestaltungen im Geschäftsprozess oftmals noch nicht bekannt sind. Dabei reicht die Bandbreite von punktueller Unterstützung durch „einfache“ Anwendungssysteme bis hin zu einer End-to- End-Automatisierung mittels BPMN2 oder BPEL. Unabhängig vom Scope und der Implementierungstechnik müssen Requirements Engineers in solchen Projekten jedoch auch Geschäftsprozesse verstehen und modellieren, um Anforderungen für die Software formulieren zu können.

Blog-Post

Large Scale Business Process Integration

Zwischen Grundbüchern, Banken und Notaren – Erfahrungen und Herausforderungen

Podcast

CSS-Architektur

Architekturaspekte von Cascading Style Sheets

Podcast

Architekturdokumentation

Über den richtigen Grad von Dokumentation für Softwarearchitekturen

Blog-Post

Early-Design Reviews

Whitepaper zu Architektur-Reviews

Blog-Post

Geschäftsprozesse vom Fließband

Während in Java-Projekten ein automatisierter Build heutzutage Standard ist, wird dies in Projekten, die auf BPEL oder BPMN aufsetzen, oftmals versäumt. Die Modellierungsumgebungen, wie in unserem Fall ActiveVOS, bieten nur rudimentäre Unterstützung für Build-Werkzeuge. Zudem gilt es viele Abhängigkeiten zu WSDL- und Schemadateien zu verwalten, die nicht in Maven, sondern in anderen Repositories versioniert sind. Wir stellen die Projektstruktur vor, die sich im Laufe unseres Projekts entwickelt hat und die es uns erlaubt, automatisiert alle Projektartefakte inklusive unserer ausführbaren Geschäftsprozesse zu paketieren und zu verteilen.

Blog-Post

Auf Nummer sicher

Neue Projekte im Geschäftsprozess-Umfeld stehen häufig vor der Herausforderung, Prozesse zu automatisieren. Dabei müssen Prozesse so formal beschrieben werden, dass ein Computer sie, wie andere Software auch, interpretieren und ausführen kann. Dieses High-Level-Programming verlangt aber auch die Qualitätssicherung, insbesondere von kritischen Prozessteilen. In diesem Artikel werden Möglichkeiten für das Testen der verschiedenen Komponenten von ausführbaren Geschäftsprozessen (Prozess, Datentransformationen) und für das Review (Prozess, Servicedefinitionen) sowie Erfahrungen aus einem Projekt vorgestellt.

Blog-Post

BPMN und Camel

Gemeinsam sind wir stark

Blog-Post

Testobjekt: Geschäftsprozess – Testen für kontinuierliche Verbesserung

Die Automatisierung von Geschäftsprozessen mittels WS-BPEL oder BPMN 2.0 steht in der heutigen Zeit oftmals im Focus der IT-Strategien von Unternehmen. Geschäftsprozesse werden dabei nicht mehr nur fachlich modelliert, sondern so formal beschrieben, dass sie mittels Prozess-Engines ausgeführt werden können. Diese formalen Modelle sind zwar abstrakter und näher an den fachlichen Geschäftsprozessen als normale Programme, sind aber trotzdem Softwareartefakte, die während der einzelnen Entwicklungszyklen und auch bei späteren Anpassungsarbeiten getestet werden müssen.

Blog-Post

Quality Driven Software Architecture

Qualität bildet die Existenzberechtigung für Softwarearchitekten: Zuverlässig, performant, skalierbar und benutzerfreundlich sollen unsere Systeme sein, das alles kosteneffektiv und zukunftssicher. Jeder IT’ler weiss, dass diese Kombination von Eigenschaften harte Arbeit bedeutet. Lesen Sie hier, wie Softwarearchitekten systematisch Qualität konstruieren können.

Blog-Post

Vom Sinn und Unsinn einer Zertifizierung für Softwarearchitekten – CPSA-F

Ein gemeinsamer Nenner für Softwarearchitekten

Vortrag
Vortrag

Schöne Dokumentation – nur mit Text

.NET Developer Conference 2026 / 14:00 - 18:00

Vortrag
Vortrag

Masterclass AI Systems Architecture

Digitale Leute Summit 2026

Vortrag
Vortrag

Anforderungen und Architekturwissen für Coding Agents: zwischen Spec-Inflation und Vibe Coding

Software Architecture Summit Oktober 2026 / 10:00 - 13:00

Vortrag
Vortrag

Ihr entscheidet alle immer falsch!

BED Con / 09:00 - 10:00

Vortrag
Vortrag

AI Systems Architecture: Was AI-Features produktionstauglich macht

BED Con / 09:00 - 10:00

Vortrag
Vortrag

Secure Build Pipelines hands-on

heise devSec 2026 / 10:00 - 17:00

News

Neu im Canvas 101 Primer: Der AI Opportunity Canvas

News

INNOQ Technology Day am 12. November 2026

News

Digitale Souveränität beginnt mit resilienter Softwarearchitektur

Case Study

Aufbau einer Lernplattform, die didaktische Weiterentwicklung ermöglicht

News

New Primer: Advanced IAM Patterns and Strategies

News

Agile meets Architecture 2026: Program Announced

News

Neuer Primer: Modernes Domain-driven Design

News

Neu: Agentic Engineering Accelerator Programm

News

Jetzt anmelden: INNOQ Technology Day 2025

News

Digitale Souveränität im Fokus: Das Technology Briefing für IT-Entscheider:innen

News

INNOQ Fragezeit startet am 31. Juli

News

arc42 wird 20: Jubiläumsedition kostenlos verfügbar

News

INNOQ Technology Day am 20. November 2025

News

Agile meets Architecture 2025

News

Neues iSAQB®-Modul: Softwarearchitektur für KI-Systeme

News

Jetzt anmelden: INNOQ Technology Day 2024

News

INNOQ Technology Day am 5. Dezember 2024

Case Study

Fleurop: Eine moderne Architektur für zuverlässige Blumengrüße

News

INNOQ Technology Bites

News

Neue Leistungsseite: Software-Reviews

News

Neuer Workshop: Intensivvorbereitung für die iSAQB CPSA-A-Prüfung

News

Das neue Lernkartenspiel „ARCARD“

News

Software Architecture Summit 2024

News

OOP 2024: Wir sind dabei!

News

Launch of New Microsite: Architecture Antipatterns

News

INNOQ Technology Day 2023 am 13. November

Case Study

Ein digitales Sprachrohr zwischen Groß- und Einzelhandel auf der Basis von Self-contained Systems

Case Study

Hellmann Road: Mit klaren Schnittstellen zu effizienten Produktteams

News

Technology Day 2023: am 13. November ist es wieder soweit!

Case Study

Mit Self-Contained Systems zu einer „Best in industry“ E-Commerce-Plattform

Case Study

Belegclearing und Fraud Detection: Krombacher setzt im Rahmen seines Loyaltyprogramms auf Automatisierung

News

Agile meets Architecture 2023

News

Agile meets Architecture – The conference bringing together agilists and software architects

News

Neues Training: Domain-driven Design für Machine-Learning-Produkte

Case Study

SACAC optimiert den Angebotsprozess mit maßgeschneiderter Software-Lösung

Case Study

Digitalisierung der Grundbuch­verwaltung in Kooperation mit Terravis

Case Study

Breuninger verbessert Time-to-Market mittels Vertikalisierung und Self-contained Systems

Case Study

Eine Cloud-Plattform für effiziente Beauftragungsprozesse in der Zahnmedizin

News

Voxxed Days Berlin 2016

News

W-JAX 2015 mit Web-Anwendungen, Microservices und REST 2015

News

Berlin Expert Days 2015

News

Neue Trainingstermine im Herbst: Microservices-Praxis-Workshop und Skalierbare Webarchitekturen

News

Microservices, Internet of Things und RxJava beim Java Forum Stuttgart

News

microxchg 2015 - Die Microservices Konferenz in Berlin mit innoQ-Beteiligung

News

Über die Advanced-Zertifizierung für Softwarearchitekten

Training

Softwarearchitekturen für KI- und ML-Systeme entwerfen

iSAQB®-Schulung