Schwerpunktthema

Softwarearchitektur

Fachartikel, Podcasts, Vorträge und mehr zum Thema Softwarearchitektur.
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

Podcast

Architecture Antipatterns

Von guten Ideen und Kipppunkten

Podcast

Architektur-Reviews

Systematisch Risiken und Probleme aufdecken

Artikel

Technologien zur Integration von Services

Kleine Architekturstudie

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

Blog-Post

Mit Reviews in Legacy-Situationen orientieren

In diesem Post möchte ich ein paar meiner Erfahrungen mit Legacy-Software teilen. Wir von INNOQ kommen meistens dazu, wenn die Entwicklung irgendwie stecken geblieben ist oder es unklar ist, wie es weiter gehen soll. Reviews, die in Zusammenarbeit von Beratern und Kunde durchgeführt werden, können in einer solchen Situation effektiv und schnell für Klarheit sorgen.

Artikel

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.

Artikel

Grundlagen der Softwarearchitektur: Teil 4

Wer macht das?

Artikel

Grundlagen der Softwarearchitektur: Teil 3

In dieser Folge der Mini-Serie klären wir, was Sie alles für Softwarearchitektur tun müssen. Zuerst schauen wir auf die notwendigen Aufgaben und Tätigkeiten. Anschließend diskutieren wir einige der notwendigen Kompetenzen und Fähigkeiten für die Architekturaufgabe.

Artikel

Grundlagen der Softwarearchitektur: Teil 2

Willkommen zum zweiten Teil der Mini-Serie zu Softwarearchitektur.

Artikel

Grundlagen der Softwarearchitektur – Teil 1

Gebäude, Zweck, Ästhetik

Blog-Post

Sparsame Dokumentation – Neu gedacht

Sie glauben, Architekturdokumentation ist umständlich und dauert lange? Wir beweisen Ihnen heute das Gegenteil.

Artikel

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

Comparing apple trees with software modernization

Blog-Post

Draw The Diff

Software developers have an idiosyncratic penchant for boxes and arrows. Back when we used to go to the office we penned them on whiteboards. Later, as the force majeure accelerated the digital transformation of our economies, we drew them online.

Artikel

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.

Artikel

Shortcomings of ISO 25010

Blog-Post

Behaviour over structure

We, developers, often forget why we even exist. We quite often don’t remember that our purpose is not to write software, but to solve problems. Those come in different forms, but can be generalized as “we need to start doing this”, “we need to stop doing this” or “we need to do this differently”. Those “do” and “doing” are the key, whatever “this” is. It’s the behaviour our software exhibits that is most important, almost everything else is secondary.

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

Artikel

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.

Artikel

1×1 guter Architekturdiagramme

Von schlechter zu besser mit 11 praktischen Tipps

Blog-Post

Der Kickstart für Softwarearchitektur

Zweifellos: Softwarearchitektur ist ein kompliziertes Thema. Dennoch können schon einige wenige Techniken helfen, die Architektur in vielen Projekten zu verbessern. Dazu muss man sie aber wirklich beherrschen und anwenden können. Wie kann man das dazu notwendige Wissen möglichst einfach und effektiv erlernen?

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.

Artikel

cards42 English edition

The activity cards for software architects

Artikel

Principles of technical documentation

This article collects fundamental requirements for technical documentation, especially software architecture documentation, together with ideas how to satisfy those.

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.

Artikel

HTTP-Feeds

Asynchrone Schnittstellen ohne Kafka oder RabbitMQ

Artikel

Quality Driven Software Architecture - Revised

Quality is the raison d’être for software architects: Our systems should be reliable, performant, scalable and user-friendly. Systems should be build and maintained cost-effective and future-proof. Every IT professional knows that this combination of characteristics means hard work. The article shows how you can methodically construct quality.

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.

Artikel

Innovation on steroids - Teil 2

Mit DDD und ML Design Canvas Use Cases für Machine Learning identifizieren

Podcast

Ist Domain-driven Design überbewertet?

Goldenes Kalb oder „nur“ Werkzeug?

Artikel

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?

Artikel

Große Systeme mit Domain-driven Design entwerfen

Mit einem strukturierten Ansatz zum Erfolg

Blog-Post

What’s in a Name: Qualität

Das Wort Qualität verwenden wir umgangssprachlich für etwas “Gutes” - aber wir lassen meist offen, was wir darunter genau verstehen. Der Artikel zeigt, dass wir uns in dieser Hinsicht etwas exakter ausdrücken sollten.

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.

Artikel

Domain-driven Design und Bounded Context

Eigentlich ganz einfach, oder?

Artikel

The art of software reviews

Auch in erfolgreichen Softwaresystemen lauern praktisch immer Probleme. Durch systematische Reviews können Sie diese Probleme zielgerichtet identifizieren – und damit eine robuste Grundlage für zukünftige Verbesserungen schaffen. Der Artikel stellt die Breitensuche als den zentralen Ansatz methodischer Software-Reviews vor und beleuchtet einige der wesentlichen Untersuchungsansätze.

Artikel

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.

Artikel

Gut gesiebt

Von Usability und Features – Service Meshes im Vergleich

Blog-Post

Happy without a Service Mesh

It does not always have to be a service mesh. Even microservices are not a good idea per se. For good decisions we have to get a deep understanding of the problem first.

Blog-Post

Wenn Customizing zur Legacy wird

In diesem Blog-Post visualisiere ich ein regelrechtes Schlamassel mit Hilfe von Wardley Maps und Elementen aus dem strategischem Domain-driven Design.

Blog-Post

Architektur, die mitwächst

Artikel

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.

Artikel

Kubeless - FaaS auf Kubernetes

Kubernetes und Serverless sind zwei der bedeutendsten Trends beim Betrieb von Software. Kubeless verspricht sogar, beides zu vereinen, und lohnt daher eine nähere Betrachtung.

Blog-Post

Agile Architekturarbeit

Das Gegenteil von geplant und vorausschauend?

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

Es muss nicht immer ein Service Mesh sein. Auch Microservices sind nicht per se eine gute Idee. Für gute Entscheidungen müssen wir uns das Problem genau anschauen.

Artikel

Identifikation von Qualitätsanforderungen mit Quality Storming

Collaborative Modeling für die skillübergreifende Erfassung und Priorisierung von Qualitätsanforderungen

Artikel

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.

Artikel

Warum Domain-driven Design?

Domain-driven Design (DDD) ist eine alte Technik, aber gerade voll im Hype. Worum geht es bei DDD und ist der Hype berechtigt?

Blog-Post

Warum Quarkus.io _nicht_ geiler ist als Spring

Artikel

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?

Artikel

Architektur­entscheidung im agilen Team

Eine schlechte Architekturentscheidung kann Projekte zum Scheitern bringen. Das passiert oft, wenn ein Architekt alle wichtigen Entscheidungen alleine trifft und nie oder sehr spät Feedback bekommt, ob sie gut oder schlecht waren. Oder aber auch, wenn ein “agiles” Team mit dem Architekten die Architekturarbeit aus dem Fenster geworfen hat. Schade, denn wenn man wichtige Entscheidungen nicht einfach dem Lauf der Dinge oder einem Elfenbeinturmbewohner überlässt, findet man viel besser Lösungen.

Artikel

Software-Architektur: Worauf es ankommt

Grundlagen für Software-Architektur

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.

Artikel

Alle 11 Minuten verliebt sich ein Microservice in Linkerd

Beim Thema Service Mesh hieß es lange immer nur “Istio”. Doch die Komplexität des Projekts und die steile Lernkurve ebnen leichtgewichtigen Alternativen den Weg. Wir haben uns mit Linkerd 2 beschäftigt und wurden nicht enttäuscht.

Artikel

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

Alles nur ein Hype?

Artikel

JavaScript? Gern, aber bitte in Maßen

Die Vorteile eines klassischen Architekturansatzes für Web-Anwendungen

Artikel

Warum Microservices scheitern

Microservices sind der große Architektur-Trend in den letzten Jahren. Mittlerweile stellt sich aber Ernüchterung ein: Auch Microservices-Projekte sind vorm Scheitern nicht sicher. Sich die typischen Gründe für das Scheitern anzuschauen, ermöglicht es, diese Probleme zu umgehen und so erfolgreiche Projekte umzusetzen.

Artikel

Das Service Mesh

Die Lösung aller Microservice-Probleme?

Artikel

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.

Artikel

Pragmatisch zum Praxiseinsatz von Machine Learning in der Cloud

Die Anzahl von Publikationen zu Computer Vision, Natural Language Processing (NLP) oder Reinforcement Learning ist heutzutage gewaltig. Dabei widmen sich die meisten ausschließlich dem Training. Doch oft müssen Data Scientists auch beim Betrieb ihrer Modelle mitwirken. Dafür braucht es einen pragmatischen und unaufwändigen Weg.

Artikel

cards42

Die Mitmach-Karten für Softwarearchitekt*innen

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

The onion architecture is an established approach to structuring applications.

Blog-Post

Domain Events vs. Event Sourcing

Why domain events and event sourcing should not be mixed up

Blog-Post

Domain Events vs. Event Sourcing

Weshalb Domain Events und Event Sourcing nicht vermischt werden sollten

Artikel

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?

Artikel

Microservices – oder doch nicht?

Alternativen und Nachfolger zum Hype

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?

Why Sometimes We Don’t Avoid Complexity.

Artikel

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

The traditional principles of software architecture often lead to problems. Understanding these challenges is the first step towards eliminating them or even avoiding them right from the start.

Blog-Post

Code Redundancy or Reuse?

Why We Must Not Focus Just on Reuse

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

Mit OpenID Connect kann Single Sign-On in einem verteilten System erreicht werden. Ein Auth-Proxy kapselt den Aspekt Authentifizierung in einem eigenständigen Modul. Wir schauen uns an, wie das im Detail umgesetzt werden kann.

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?

Microservices are a hype. Now, critics suggest to return to monoliths. But does that really help?

Blog-Post

A Playground for Testing OpenID Connect

Solving problems we wish we didn’t have

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

Reverse proxies don’t have to be a pain when it comes to local development.

Blog-Post

Service Mesh und Kubernetes

Warum eine dezidierte Infrastruktur wie Istio notwendig ist

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

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.

Artikel

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

Am Anfang eines Projektes wird heutzutage in der Regel Wert auf Tests gelegt. Projekte werden sogar testgetrieben aufgesetzt (Test-driven-development, TDD). TDD-Projekte der reinen Lehre schreiben vor, dass vor jeder Zeile Anwendungscode der entsprechende Testcode geschrieben werden muss. Schleicht sich Stress ein oder lässt die Begeisterung nach, kann es passieren, dass das Thema Tests – obwohl wichtig – vernachlässigt werden. Das gilt umso mehr, je schwieriger Komponenten eines Systems zu testen sind, unabhängig, ob sie einzeln oder integriert betrachtet werden. Lesen Sie hier, wie Ihnen ein Domain-orientierter Ansatz zusammen mit Spring Boot 2 dabei hilft, Qualität sicherzustellen.

Blog-Post

Proof of Existence via HTTPS

Artikel

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

Steht und fällt der Erfolg einer Softwarearchitektur und damit eines Projektes mit einer technischen Entscheidung zugunsten von Microservices oder Monolithen oder müssen viel früher Weichen gestellt werden, um sicherzustellen, dass technische Entscheidungen die gewünschten Ziele erreichen: Einige Gedanken zu Kommunikation in Projekten.

Artikel

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

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

Artikel

Microservices – der aktuelle Stand

Was hinter dem Hype steckt und wie es weitergeht.

Artikel

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.

Artikel

Datenarchitekturen – nicht nur für Microservices

Microservices werfen wichtige Fragen für Software-Architektur auf. Besonders wichtig ist es, wie die Microservices mit Daten umgehen. Diese Konzepte lassen sich für viel mehr nutzen als nur für Microservices und werfen grundlegende Fragen über Modularisierung auf.

Artikel

Innovation Tokens – Gegen Informatikerromantik und Technologieüberflutung

Wie viel Innovation sollen wir zulassen?

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?

In einem Gastbeitrag diskutiert Frank Buschmann, Co-Autor der Buchreihe “The "Pattern-Oriented Software Architecture”, warum Patterns zur Zeit eine Renaissance erleben.

Blog-Post

Serverless

Mehr als ein Hype?

Blog-Post

Implementierung einer einfachen Zustandsmaschine (state machine) in Java

Eine simple Zustandsmaschine (state machine) in Java

Artikel

Lokale Datenanalyse mit Data Frames

Der Wunsch, aus Geschäftsdaten Erkenntnisse gewinnen zu wollen, ist in der Breite der Unternehmen angekommen. Häufig werden dabei technologische Aspekte wie Machine-Learning-Algorithmen und Cluster-Lösungen als Schlüssel betrachtet, um viele Fragen quasi automatisch zu beantworten. Doch muss es für einen Einstieg in dieses Thema immer direkt ein Big-Data-Framework oder ein Cluster für Machine Learning sein? Dieser Artikel zeigt Ihnen, wie Sie ganz einfach lokal auf Ihrem Rechner die ersten Schritte im Data-Science-Umfeld gehen können und dabei einen Überblick über die Vorgehensweise erhalten.

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

Artikel

Microservices lieben Domain Driven Design, warum und wie?

Domain Driven Design im Kontext von Microservices

Artikel

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?

Artikel

Services: SOA, Microservices und Self-contained Systems

Artikel

Self-contained Systems: A Different Approach to Microservices

Artikel

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.

Artikel

Software-Architektur für Innovation

Software ist mittlerweile in praktisch allen Wirtschaftsbereichen zentraler Teil der Wertschöpfung. Also sollte Software auch Innovationen ermöglichen. Die Frage ist, wie Software dazu beschaffen sein muss.

Blog-Post

The perils of shared code

Artikel

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.

Artikel

Wie kommt man zu Self-Contained Systems?

Self-Contained Systems bezeichnet ein Konzept für Softwarebausteine, das klare Integrationsregeln auf der Makro-Ebene definiert: Systeme werden in eigenständige Teilsysteme zerlegt, die zu einem Gesamtsystem integriert werden. Häufig wird vorgeschlagen, Systeme entlang von Domänen in Self-Contained Systems zu zerlegen. In diesem Artikel wird ein alternativer Ansatz für das Schneiden einer Architektur in föderierte Self-Contained Systems vorgestellt.

Artikel

Requirements Engineering

Anforderungen als Basis effizienter Softwareentwicklung

Artikel

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.

Artikel

Microservices - eine Bestandsaufnahme

Kaum ein Thema ist im Moment so ein Hype wie Microservices. Welche Gründe gibt es dafür? Und wie kann man Microservices gewinnbringend einsetzen? Welche Herausforderungen gibt es? Dieser Artikel gibt einen Überblick über den Architektur-Trend und beantwortet die wichtigsten Fragen.

Artikel

Software systematisch verbessern

Mit etablierten, iterativ angewandten Praktiken zeigt aim42 Wege aus der Legacy-Hölle

Artikel

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

The term architecture is used with slightly different meanings throughout the IT industry. This post clarifies what (software) architecture is all about - and which misunderstandings might linger on your way to common understanding.

Artikel

Nachhaltige Webarchitekturen

Warum REST und SPAs nicht immer die Lösung sind

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

Currently, a lot of companies are migrating from Desktop applications (mostly written in Java) to Web applications for their products as well as for their internal tooling. When they start with this process they often ask themselves: Which technologies should we use to build our Web application? Should we use Angular.js or React? Or should we go with recommendations like ROCA instead of a Single Page Application?

Artikel

AWS Lambda

Serverlose Microservices

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.

Artikel

Java-Web-Frameworks von innen?

Web-Frameworks für Java gibt es nun bereits seit fast 20 Jahren. Diese nehmen dem Anwendungsentwickler eine Menge Arbeit ab und sorgen dafür, dass dieser sich nicht auf Infrastruktur konzentrieren muss, sondern die Anwendungslogik im Vordergrund steht. Doch was genau tut so ein Web-Framework eigentlich? Dieser Artikel zeigt, was heutige Web-Frameworks leisten und wo diese sich dann doch in Nuancen unterscheiden.

Blog-Post

What’s in a Name: Transparency

Blog-Post

Transclusion in self-contained systems

Frontend integration in the web is a huge topic. This post deals with the aspect of transclusion of other systems' content in the DOM of a web page.

Artikel

Microservices - Agilität durch Modularisierung

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

Artikel

Docker - Perfekte Verpackung von Microservices

Blog-Post

What’s in a Name: Consistency

The term consistency has several different meanings. This post identifies and clarifies those - especially consistency as synonym for conceptual integrity, one of the most important features for long-lasting software systems.

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

Reliable Web Clients

Artikel

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.

Artikel

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.

Artikel

Logging konsolidieren und Performance gewinnen

Performance, Durchsatz und Integrität

Artikel

Scalable Software Systems

Scalability has long been one of the hallmarks of quality IT systems. When we hear this term we usually associate it with an upward scalability of the system. Generally, it seems to be about how much more throughput and load our system can sustain through additonal RAM, CPU or extra machines. Often, however, downwards scalability is just as interesting, that is, the behaviour of the system when only very few resources are available. Such flexibility is very useful, for instance, if a complex system has to go through a variety of differently sized development, test and acceptance environments before it is provisioned in the live system.

Artikel

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.

Artikel

Warum Soft Skills für Softwarearchitekten wichtig sind

Gemeinsam Ziele erreichen

Artikel

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.

Artikel

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

Artikel

Skalierbare Softwaresysteme

Skalierbarkeit ist eines der klassischen Qualitätsmerkmale von IT-Systemen. Wenn wir diesen Begriff hören, denken wir üblicherweise sofort an die Skalierung des Systems “nach oben”. Es scheint also meistens darum zu gehen, inwieweit unser System durch das Hinzufügen von mehr RAM, CPU oder zusätzlichen Maschinen auch entsprechend mehr Durchsatz erreicht oder mehr Last vertragen kann. Oft ist aber auch die Skalierbarkeit “nach unten” interessant, also die Lauffähigkeit des Systems bei sehr wenig verfügbaren Ressourcen. Eine solche Flexibilität ist zum Beispiel sehr hilfreich, wenn ein komplexes System automatisiert durch viele unterschiedlich dimensionierte Entwicklungs-, Test- und Abnahmeumgebungen wandern muss, bevor es in der Produktivumgebung ankommt.

Podcast

Grid-Computing

Große Netze für große Probleme

Artikel

Domain-Driven Design in Clojure

Gut bewertet

Podcast

Graphdatenbanken

Vor- und Nachteile graphbasierter Datenbanken

Artikel

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.

Artikel

Use-Case-Puzzeln für Fortgeschrittene

Zwischen Requirements Engineering und Geschäftsprozessmodellierung

Artikel

Large Scale Business Process Integration

Geschäftsprozesse werden heutzutage vielmals unternehmensintern im Rahmen von BPM-Initiativen oder Projekten mit Geschäftsprozessmanagementsystemen, unter anderem auf der Basis von BPEL oder BPMN, automatisiert und eingeführt. Im Rahmen des Projekts Terravis entsteht eine schweizweite Plattform für elektronische Geschäfte zwischen Grundbuchämtern, Banken, Notaren und Handelsregistern, die im Endausbau bis zu 1 000 Umsysteme miteinander verbinden und die Prozesse mit den Beteiligten koordinieren wird. Da wir glauben, dass solche Projekte in Zukunft in der einen oder anderen Facette häufiger vorkommen werden, stellen wir in diesem Artikel die Architektur für solche Projekte vor und berichten über unsere Erfahrungen.

Podcast

CSS-Architektur

Architekturaspekte von Cascading Style Sheets

Podcast

Architekturdokumentation

Über den richtigen Grad von Dokumentation für Softwarearchitekturen

Artikel

Early-Design Reviews

Sie erfahren in diesem Whitepaper, wie Kunden der innoQ in unterschiedlichen Projektphasen von der Umsetzungs- und Architektur-Expertise von innoQ profitiert haben. Sie lernen die notwendigen Voraussetzungen für erfolgreiche Review-Projekte kennen.

Artikel

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.

Artikel

BPMN und Camel

Gemeinsam sind wir stark

Artikel

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.

Artikel

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.

Artikel

Quality Driven Software Architecture

Mit Fokus auf Qualität bessere Software schaffen

Artikel

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

Da Softwarearchitekt keine geschützte Berufsbezeichnung ist, können in einem Projektkontext erworbene Fähigkeiten oder Erfahrungen vom nächsten Arbeit- oder Auftraggeber schlimmstenfalls als ungenügend betrachtet werden. Solche Überraschungen wünscht sich weder der Softwarearchitekt noch der Arbeitgeber. Ein gemeinsames Verständnis würde helfen, dieses Risiko zu vermeiden. Um überprüfen zu können, ob jemand den Anforderungen an das Berufsbild Softwarearchitekt gerecht wird, gibt es verschiedene

Vortrag
Vortrag

Die Rolle „Evolutionist“: Softwarearchitekturarbeit im Bestand

Developer Week ’24 / 15:30 - 16:30

Vortrag
Vortrag

Turbo - dynamische Webapps abseits von Single-Page Applications

MunichJS - JavaScript User Group / 19:45 - 20:15

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 steigert 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