Entwicklung & Code
Saubere Trennung zwischen Fachlogik und Technik: Hexagonale Architektur
Vielleicht kommt Ihnen das bekannt vor: Sie starten ein neues Projekt – voller Motivation und mit dem guten Gefühl, alles von Anfang an sauber umzusetzen. Also wählen Sie die klassische Architektur, die man überall kennt: oben die Nutzeroberfläche, unten die Datenbank, dazwischen ein wenig API. Das sieht ordentlich aus, fühlt sich professionell an, und man denkt sich: So baut man gute Software. Schließlich steht es ja so auch in den Lehrbüchern und in sämtlichen Framework-Tutorials. Und am Anfang funktioniert das auch wunderbar. Die ersten Funktionen entstehen fast von selbst. Sie klicken sich durch die Oberfläche, speichern Daten in der Datenbank, und alles wirkt kontrollierbar und aufgeräumt. Jede Schicht scheint genau das zu tun, wofür sie gedacht ist.
Golo Roden ist Gründer und CTO von the native web GmbH. Er beschäftigt sich mit der Konzeption und Entwicklung von Web- und Cloud-Anwendungen sowie -APIs, mit einem Schwerpunkt auf Event-getriebenen und Service-basierten verteilten Architekturen. Sein Leitsatz lautet, dass Softwareentwicklung kein Selbstzweck ist, sondern immer einer zugrundeliegenden Fachlichkeit folgen muss.
Und dann vergehen ein paar Monate – und die ersten Probleme beginnen sich langsam zu zeigen. Plötzlich benötigen Sie die Datenbank, um Ihre Tests überhaupt starten zu können. Ein kleines neues Feature zwingt Sie dazu, Änderungen an drei oder vier Stellen gleichzeitig vorzunehmen. Und irgendwie ist Ihre Geschäftslogik in die Controller gerutscht oder steckt direkt in der Datenbank. Fachlichkeit und Technik beginnen, sich immer stärker zu vermischen.
Empfohlener redaktioneller Inhalt
Mit Ihrer Zustimmung wird hier ein externes YouTube-Video (Google Ireland Limited) geladen.
Hexagonale Architektur – die Architektur der Zukunft? // deutsch
Dann kommt irgendwann der Tag, an dem Sie etwas Größeres anfassen müssen. Vielleicht müssen Sie das Framework aktualisieren, weil das alte nicht mehr unterstützt wird. Vielleicht möchten Sie die Datenbank austauschen oder eine völlig neue Nutzeroberfläche aufsetzen. Und genau in diesem Moment merken Sie, dass Sie gefangen sind, gefangen in Ihrer eigenen Architektur. Was am Anfang noch so ordentlich aussah, entpuppt sich in Wirklichkeit als Falle.
Das Problem mit klassischen Architekturen
Wenn wir uns einmal etwas genauer anschauen, warum klassische Architekturen langfristig häufig so viele Probleme verursachen, dann ist das zunächst gar nicht offensichtlich. Auf dem Papier wirken sie nämlich sauber. Wir haben unsere Schichten: ganz oben die Nutzeroberfläche, in der Mitte die API oder vielleicht ein paar Services, und ganz unten die Datenbank. Alle wissen, wo ihr Code jeweils hingehört, und anfangs entsteht das gute Gefühl, dass man eine saubere, gut strukturierte Anwendung entwickelt.
Doch sobald die Software wächst, zeigt sich die Realität. Fachlichkeit und Technik lassen sich in der Praxis fast nie sauber trennen. Ein neues Feature kommt, und plötzlich verteilt sich die Geschäftslogik: Ein Teil landet im Controller, ein anderer Teil in den Datenbank-Entities und ein weiterer Teil in irgendeinem Service. Denn natürlich ist es bequem, von irgendwo schnell einmal auf ein Framework-Feature zuzugreifen oder direkt eine Datenbank-Annotation zu verwenden, statt eine saubere Schnittstelle zu definieren. Und mit jedem dieser kleinen Schritte wird Ihre Software ein Stück enger mit der Technik verflochten.
Am Anfang merken Sie das kaum. Doch nach ein paar Monaten wird es plötzlich unmöglich, Ihre Geschäftslogik ohne die Datenbank oder das Framework zu starten. Wenn Sie testen möchten, benötigen Sie zunächst eine laufende Datenbank. Wenn Sie refaktorisieren wollen, müssen Sie darauf achten, keine versteckte Magie des Frameworks unbeabsichtigt zu beschädigen.
Fachlichkeit und Technik vermischen sich
Das führt dazu, dass Ihre Software zunehmend unbeweglich wird. Jede Änderung wird riskant. Ein simples neues Feature zieht sich durch mehrere Schichten, und selbst kleinste Anpassungen können Nebenwirkungen haben, die Sie erst bemerken, wenn etwas ganz anderes nicht mehr funktioniert. Und je länger das Projekt läuft, desto größer wird die Unsicherheit vor Änderungen. Notwendige Refactorings werden häufiger verschoben. Irgendwann kommt dann der Moment, an dem Sie etwas wirklich Grundlegendes ändern müssen. Vielleicht benötigen Sie ein Framework-Upgrade, weil Sicherheitslücken bekannt geworden sind. Vielleicht müssen Sie die Datenbank wechseln, weil Ihr Produkt skalieren soll. Oder Sie möchten eine neue Nutzeroberfläche entwickeln, weil Ihre Anwendung auf einer anderen Plattform laufen soll.
Und genau in diesem Moment stellen Sie fest, dass Sie in Ihrer Architektur gefangen sind. Die Geschäftslogik ist inzwischen so eng mit der Technik verknüpft, dass sie kaum noch zu entkoppeln ist. Genau das ist die große, unsichtbare Falle der klassischen Drei-Schichten-Architektur. Sie vermittelt anfänglich ein Gefühl von Ordnung – doch je größer Ihr System wird, desto höher fällt der Preis für diese scheinbare Ordnung aus. Es fehlen allzu oft klare Grenzen zwischen dem, was fachlicher Kern ist, und dem, was lediglich technische Infrastruktur sein sollte. Und ebendiese fehlenden Grenzen machen Ihre Software langfristig teuer, unflexibel und fehleranfällig.
Wenn diese strukturelle Falle erst einmal erkannt ist, stellt sich unmittelbar die Frage: Wie kann man ihr entkommen? Die Antwort darauf ist überraschend einfach – und gleichzeitig radikal. Die Geschäftslogik muss so gestaltet werden, dass sie vollständig unabhängig von Datenbanken, Frameworks und Benutzeroberflächen funktioniert. Genau das ist die Grundidee der hexagonalen Architektur.
Was ist hexagonale Architektur?
Hexagonal bedeutet in diesem Zusammenhang nicht, dass künftig alle Komponenten in Form von Sechsecken dargestellt werden müssten. Es geht vielmehr darum, dass Ihre Anwendung einen stabilen Kern erhält, und alles, was sich außen herum befindet, austauschbar wird. Dieser Kern ist die sogenannte Domain – also die Geschäftslogik, die das eigentliche Kerngeschäft abbildet. Alles andere – sei es Benutzeroberfläche, Datenbank, API, Messaging-System oder Cloud-Service – ist lediglich ein Adapter, also gewissermaßen ein Plug-in, das sich an diesen Kern andockt.
Um das Bild greifbar zu machen: Stellen Sie sich Ihre Anwendung als Insel vor. Im Zentrum dieser Insel befindet sich Ihre Geschäftslogik. Das ist jener Teil, der Ihr Produkt ausmacht, der Ihr Unternehmen besonders macht und für den Kundinnen und Kunden letztlich bezahlen, weil hier die eigentliche Wertschöpfung erfolgt. Außen herumliegt das Wasser, und auf der gegenüberliegenden Seite liegt die große weite Welt: Benutzeroberflächen, Datenbanken, externe Systeme, Frameworks und mehr. Um diese Welt nun mit Ihrer Geschäftslogik zu verbinden, bauen Sie Brücken – genau diese sind die Adapter. Wenn Sie dann eine dieser Brücken austauschen, bleibt die Insel selbst davon völlig unberührt.
Viele Teams betonen zwar, dass sie Domain-Driven Design (DDD) anwenden – tatsächlich enthalten die Objekte jedoch häufig nur Daten, während sämtliche Entscheidungen in Services ausgelagert werden. Eine echte hexagonale Architektur entfaltet ihre Stärken jedoch erst dann, wenn die Domain tatsächlich Verhalten enthält: also Regeln, Invarianten und Entscheidungen. Wenn die Objekte hingegen keine eigene Logik mitbringen, entsteht erneut Spaghetti-Code. Auch das schönste Hexagon kann daran nichts ändern. Solche Datenmodelle, die keine eigene Logik tragen, werden deshalb auch als anämisch – also gewissermaßen blutarm – bezeichnet.
Onion Architecture, Clean Architecture & Co.
Vielleicht sind Ihnen in diesem Zusammenhang auch schon die Begriffe „Onion Architecture“ oder „Clean Architecture“ begegnet. Im Kern handelt es sich dabei jeweils um denselben Ansatz wie bei hexagonaler Architektur. Alle drei Architekturmodelle verfolgen nämlich das gleiche Ziel: Die Geschäftslogik soll ins Zentrum rücken, die Technik nach außen treten. Unterschiede bestehen hauptsächlich in der Darstellung und in einzelnen Details. Die Onion Architecture verwendet das Bild konzentrischer Ringe, die Clean Architecture ergänzt Begriffe wie Entities, Use Cases und Interfaces, und die hexagonale Architektur spricht stattdessen von Ports und Adaptern – häufig in der Darstellung eines Sechsecks. In der praktischen Umsetzung sind diese Begriffe jedoch vor allem unterschiedliche Perspektiven auf eine gemeinsame Grundidee. Wer das Prinzip der hexagonalen Architektur verstanden hat, besitzt damit zugleich das Fundament für Onion und Clean Architecture.
Häufig wird moderne Architektur auch unmittelbar mit Microservices in Verbindung gebracht – jedoch bedeutet die Verwendung hexagonaler Architektur nicht automatisch, dass Microservices eingesetzt werden müssen. Auch ein modularer Monolith – gelegentlich auch als „Modulith“ bezeichnet – kann problemlos auf Basis einer hexagonalen Struktur aufgebaut werden. Und wenn später ein Wechsel hin zu Microservices ansteht, gelingt dieser deutlich einfacher, weil durch die fachlichen Grenzen bereits alle strukturellen Voraussetzungen erfüllt sind. Microservices bieten jedoch den Vorteil, dass sie diese Struktur oft noch konsequenter erzwingen. Meiner persönlichen praktischen Erfahrung nach funktioniert der fachliche Ansatz daher in Verbindung mit Microservices häufig besonders gut.
Abhängigkeiten von außen nach innen
Der zentrale Mechanismus der hexagonalen Architektur besteht – wie bereits erwähnt – aus Ports und Adaptern. Ein Port ist dabei eine Schnittstelle, die Ihre Geschäftslogik entweder anbietet oder von außen erwartet. Ihr Fachmodell könnte etwa formulieren:
„Um ein Buch auszuleihen, benötige ich ein Repository, das mir Bücher liefert und Speichervorgänge entgegennimmt.“
Es legt aber nicht fest, wie dieses Repository konkret implementiert ist. Es definiert lediglich den Vertrag – genau das ist der Port. Der Adapter, also die Brücke in unserem Bild, ist die konkrete Umsetzung. Er weiß, wie er diese Schnittstelle erfüllt: Vielleicht verwendet er eine PostgreSQL-Datenbank, vielleicht eine EventSourcingDB, vielleicht ein einfaches In-Memory-Array für Tests – oder etwas ganz anderes. Für Ihre Geschäftslogik spielt das keine Rolle. Sie kennt ausschließlich die Schnittstelle, nicht aber die dahinterliegende technische Umsetzung.
Entscheidend dabei ist die Richtung der Abhängigkeiten. In einer klassischen Schichtenarchitektur hängt der Fachcode fast immer von der Technik ab: Die Nutzeroberfläche ruft Services auf, Services greifen auf Repositories zu, und diese sind direkt mit der Datenbank verbunden. In der hexagonalen Architektur hingegen ist es genau umgekehrt: Die Technik hängt an der Geschäftslogik, aber die Geschäftslogik weiß nichts von der Technik. Dadurch erzielen Sie drei wesentliche Vorteile:
- Erstens wird Ihre Software testbar, weil Sie die Geschäftslogik isoliert prüfen können.
- Zweitens wird sie anpassbar, weil Sie Datenbanken, Benutzeroberflächen und Frameworks austauschen können, ohne die Geschäftslogik ändern zu müssen.
- Und drittens wird sie langlebig, weil der fachliche Kern Ihrer Software vollständig unabhängig bleibt von Technologien, die in wenigen Jahren bereits veraltet sein könnten.
Damit die Geschäftslogik auch tatsächlich unabhängig bleibt, werden die Adapter – wie beschrieben – von außen bereitgestellt. Dies erfolgt typischerweise über Dependency Injection. Die Domain kennt somit nur die Ports – wer die jeweilige Implementierung liefert, entscheidet die Außenwelt zur Laufzeit. Das ist kein exklusives Merkmal der hexagonalen Architektur, sondern schlicht saubere Entkopplung.
„Wir sind aber nicht Netflix!“
Vielfach wird angenommen, dass eine so strukturierte Architektur nur bei besonders großen Systemen erforderlich sei. Häufig fällt dann der Satz:
„Wir sind aber nicht Netflix!“
Das jedoch greift zu kurz. Natürlich handelt es sich bei den meisten Systemen nicht um Plattformen dieser Größenordnung. Dennoch gilt: Jede Software, die überhaupt einen Zweck erfüllt, enthält auch Fachlichkeit – also auch Ihre Software. Denn niemand entwickelt Software ausschließlich aus technischer Neugier, sondern fast immer, weil ein fachliches Problem gelöst werden soll. Und genau deshalb gehört die Fachlichkeit immer in den Mittelpunkt. Möglicherweise benötigen Sie nicht in jedem Projekt CQRS oder Event Sourcing. Aber ein klares Verständnis davon, welche fachlichen Begriffe und Regeln Ihre Software prägen, benötigen Sie immer. Wenn Sie diese Fachlichkeit konsequent ins Zentrum stellen, ergibt sich die Technik darum herum nahezu von selbst. Genau darum geht es.
Wenn Sie Ihre Software also so gestalten, dass die Geschäftslogik im Zentrum steht und die Technik nur außen angedockt ist, verändert sich die Arbeit damit grundlegend. Denn plötzlich fühlt sich Softwareentwicklung wieder leicht an – selbst in sehr großen Projekten. Der erste große Vorteil ist die Testbarkeit. Sie können Ihre Geschäftslogik vollständig isoliert prüfen – ohne laufende Datenbank, ohne gestartetes Framework, ohne Abhängigkeit von der Außenwelt. Sie schreiben einen Test, instanziieren die Geschäftslogik, geben ihr die benötigten Daten – und prüfen, ob sie das richtige Verhalten zeigt. Das spart Zeit und schafft vor allem Sicherheit: Sie wissen, dass Ihr Kerngeschäft funktioniert – unabhängig davon, was außerhalb geschieht.
Der zweite Vorteil ist die Flexibilität. Wenn Ihre Geschäftslogik keine Kenntnis von Datenbanken, Frameworks oder technischen Details hat, können Sie diese jederzeit austauschen. Heute arbeiten Sie vielleicht mit PostgreSQL, morgen mit einer EventSourcingDB oder MongoDB. Sie könnten Ihre Nutzeroberfläche von einer klassischen Webanwendung auf eine mobile App oder eine reine API-Variante umstellen. Ihre Geschäftslogik bleibt unverändert – ein enormer Vorteil für die langfristige Wartbarkeit.
Der dritte Vorteil ist die Langlebigkeit Ihrer Software. Technologien kommen und gehen. Frameworks und Werkzeuge werden abgelöst. Die Geschäftslogik jedoch bleibt in vielen Fällen über Jahre im Einsatz. Wenn sie von Anfang an unabhängig gehalten wird, schützen Sie damit den wertvollsten Teil Ihrer Software: das eigentliche Kerngeschäft. Refactorings verlieren ihren Schrecken, weil klar ist: Die Technik ist austauschbar – aber die Logik bleibt stabil. Viele Teams erkennen diese Falle erst spät und müssen dann aufwendig umbauen. Wer früh mit hexagonaler Architektur beginnt, erspart sich diesen Schritt. Doch auch ein späterer, schrittweiser Umbau ist möglich: Zunächst die Grenzen ziehen, dann Adapter definieren, anschließend die Technik entkoppeln. Architektur ist in den meisten Fällen ein evolutiver Prozess – kein Big Bang.
Zugang zu modernen Architekturmustern
Hexagonale Architektur ist übrigens nicht nur für sich genommen interessant – sie eröffnet auch den Zugang zu modernen Architekturmustern wie Event Sourcing und CQRS. Vielleicht haben Sie bereits von CQRS gehört – falls nicht: Es lohnt sich, sich damit einmal näher zu beschäftigen. Das Akronym CQRS steht dabei für Command Query Responsibility Segregation und bedeutet, dass Lese- und Schreiboperationen in der Anwendung konsequent getrennt werden: Commands verändern den Zustand, Queries lesen ihn aus. Event Sourcing geht sogar noch einen Schritt weiter: Anstelle des aktuellen Zustands werden sämtliche Änderungen, die im Laufe der Zeit stattfinden, als Events gespeichert. So entsteht ein wertvoller Datenschatz, der sich analysieren, auswerten und zur Verbesserung der Fachlichkeit nutzen lässt. Und als zusätzlicher Vorteil: Sie schreiben Ihre Geschäftslogik mit konsequentem Fokus auf die Fachlichkeit – nicht auf die Technik. Als Einstieg in die Thematik sei die Website cqrs.com empfohlen.
Gerade hier zeigt sich übrigens sehr gut, wie perfekt die hexagonale Architektur ins Gesamtbild passt: Commands und Queries sind in dieser Architektur nämlich einfach Ports – also Schnittstellen, über die die Geschäftslogik angesprochen wird. Ob ein Command nun über eine HTTP-API, eine Message-Queue oder einen Testfall hereinkommt, spielt für die Geschäftslogik keine Rolle. Auch die Anbindung des Event-Stores ist lediglich ein Adapter, der die Ports bedient. Das bedeutet: Wenn Sie später auf CQRS oder Event Sourcing umsteigen möchten, müssen Sie nicht bei null beginnen. Ihre Anwendung ist bereits vorbereitet – durch die klare Trennung von Fachlogik und Technik.
In einer zunehmend verteilten Welt, in der Themen wie Streaming, Real-Time-Processing und Cloud-native-Architekturen an Bedeutung gewinnen, ist das ein erheblicher Vorteil. Sie bauen heute eine robuste, langlebige Anwendung – und halten sich zugleich die Tür für zukünftige Technologien offen.
Heute schon an morgen denken
Klassische Architekturen wirken zu Beginn sehr sauber, entwickeln sich jedoch im Laufe der Zeit zur Falle. Fachlogik und Technik vermischen sich, Änderungen werden riskant, und plötzlich hängt Ihre gesamte Anwendung an Frameworks und Datenbanken, die eigentlich nur Hilfsmittel sein sollten. Die hexagonale Architektur kehrt dieses Verhältnis um. Sie stellt die Fachlogik in den Mittelpunkt und macht die Technik austauschbar.
Das Ergebnis: testbare, flexible und langlebige Software. Sie schaffen sich die Freiheit, auf neue Anforderungen und Technologien zu reagieren, ohne das Kerngeschäft Ihrer Anwendung ständig neu aufbauen zu müssen. Wer Software auf diese Weise gestaltet, schützt damit das Wertvollste, was ein Team besitzt: das eigene Fachwissen. Denn alles andere ist nur Infrastruktur – und diese kann jederzeit ersetzt werden.
(rme)
Entwicklung & Code
Niemand ist total heiß darauf, massenweise Standardcode runterzuschrubben
Glaubt man prominenten Stimmen aus der Techbranche, dann wird zunehmend mehr Code in Unternehmen durch KI generiert. Alphabet-CEO Sundar Pichai spricht von 25 Prozent des neuen Codes, Microsoft-CEO Satya Nadella nennt 20 bis 30 Prozent in Repositories und bestimmten Projekten, Meta-Gründer Mark Zuckerberg erwartet in seinem Unternehmen rund die Hälfte KI-Code im kommenden Jahr. Und Softbank-Chef Masayoshi Son möchte sogar die Ära menschlicher Programmierung beenden. Haben Menschen im Entwicklerjob etwa bald ausgedient? Darüber sprach die iX-Redaktion mit dem Arbeitsmarktforscher Enzo Weber.
(Bild: Michael Bode )
Prof. Dr. Enzo Weber ist Leiter des Forschungsbereichs „Prognosen und gesamtwirtschaftliche Analysen“ am Institut für Arbeitsmarktforschung der Bundesagentur für Arbeit und Inhaber des Lehrstuhls für Empirische Wirtschaftsforschung an der Universität Regensburg.
iX: Derzeit überschlagen sich Techkonzerne wie Microsoft, Salesforce oder Softbank mit Verlautbarungen, wie viel Code die generative KI im Unternehmen bereits erzeugt. Müssen sich Entwickler wegen Jobverlust durch KI Sorgen machen?
Weber: Wenn man abgleicht, welche Tätigkeiten zu Berufen gehören und welche Möglichkeiten heute KI-Technologie hat, dann zählt Standardprogrammierung tatsächlich zu den Tätigkeiten, die in ziemlich großem Umfang bereits ersetzbar sind. Dazu gibt es zum Beispiel vom IAB eine Studie zum Automatisierungspotential beruflicher Tätigkeiten. Die nennt für das Feld der Informations- und Kommunikationstechnologien – also breiter gefasst als nur Entwickler – einen Wert bei 56 Prozent. Das sollte man aber nicht verabsolutieren. Einerseits werden am Ende aus verschiedensten Gründen nie sämtliche Automatisierungspotenziale auch realisiert. Und andererseits schreitet die Technologie gleichzeitig weiter voran.
Sich Sorgen machen zu müssen, ist trotzdem noch mal etwas anderes. Ersetzt wird ohne Zweifel ziemlich viel von dem, was man in der Vergangenheit in diesen Jobs gemacht hat. Der entscheidende Punkt ist aber, was man in der Zukunft macht.
Also wird sich der Entwicklerjob generell dann einfach stärker verändern, aber die Menschen nicht unbedingt ihren Job verlieren?
Die Veränderung der Jobs ist in der Tat das Entscheidende. Wir sitzen im Moment da, staunen über die Entwicklung der Technologie und sehen, dass sie vieles von dem, was wir bisher gemacht haben, jetzt auch kann. Uns selbst scheinen wir aber irgendwie ziemlich wenig Entwicklungsfähigkeit zuzutrauen. Aber das ist doch eigentlich die große Chance: Die Technologie ist ja nicht die Einzige, die sich weiterentwickeln kann – Menschen können das auch, bei sich und ihrer Arbeit und ihren Kompetenzen.
Mir kann kein Entwickler erzählen, dass er seinen Beruf gewählt hat, weil er total heiß darauf war, massenweise Standardcode runterzuschrubben. KI bietet auch einfach die Möglichkeit, in Zukunft in einem Berufe das zu machen, wofür man ihn eigentlich mal ergriffen hat. Das gilt nicht nur bei Entwicklern, denn KI kann wirklich quer durch alle Berufe Anwendung finden.
Wird dann die Ersetzung oder die Ergänzung menschlicher Arbeit durch KI vorherrschen?
Ich würde in substanziellem Umfang von einer Ersetzung menschlicher Arbeit ausgehen, wie wir sie auch aus der Vergangenheit kennen. Wenn das nicht so wäre, würde es ja betriebswirtschaftlich überhaupt keinen Sinn ergeben, solche Technologien einzusetzen. Aber wir sollten nicht denken, dass menschliche Arbeit im Jahr 2025 sozusagen das Optimum erreicht hat und jetzt kommt eine Technologie, und die stört dieses Optimum. Wir sind auf einem bestimmten Entwicklungsstand und da geht auch noch mehr.
Es gibt zwei Seiten: Etwas von dem, was bisher da war, wird ersetzt. Auf der anderen Seite werden dadurch aber Kapazitäten von schlauen Menschen frei, die sich weiterentwickeln und neue Arbeiten übernehmen können. Menschen, die am Ende auch mit der KI zusammenarbeiten, indem sie das bewerten, kontrollieren, sich überlegen, wie man KI einsetzen kann, aber auch ganz neue Geschäftsmodelle und Tätigkeiten entwickeln. Das ist ja nicht das, was KI macht. Echte Kreativität – das machen immer noch Menschen. Das heißt also nicht, dass in Zukunft weniger Jobs da sein werden.
Bewerten, kontrollieren, kreative Federführung – das klingt vor allem nach erfahrenen Entwicklern. Haben dann die Berufsanfänger, die mit leicht automatisierbaren Routineaufgaben in den Job finden, am meisten unter dem KI-Hype zu leiden?
Dazu gibt es im Moment eine große Diskussion, vor allem in den USA. Es gibt Argumente in beide Richtungen. Also ja, Erfahrungswissen ist etwas, das man erst später hat und das einen sicherlich in höherwertige Tätigkeiten bringt. Auf der anderen Seite haben die jungen Leute natürlich auch einen frischen Blick. Die sind nicht geprägt durch eine Zeit, in der es keine KI gab. Wer da reingewachsen ist, kann auch ganz neu ganz anders starten.
Aber nur weil man schon in Jugendzeiten KI-Apps auf dem Smartphone benutzt hat, hat man deswegen nicht die konzeptionelle Kompetenz. Dafür braucht man mehr, und deswegen brauchen wir auch wirklich Bildungskonzepte und nicht einfach nur die Behauptung „Das sind doch alles digital Natives, die machen das schon“.
US-Techkonzerne setzen derzeit massenweise Personal frei und brüsten sich, wie KI ihre Entwicklerteams ersetzt. Werden da nicht auch Entlassungen als Innovation verbrämt?
Da ist natürlich schon eine signifikante Entwicklung im Tech-Sektor zu sehen. Das gab es ja früher auch schon, erinnern Sie sich mal an die New-Economy-Blase, die Anfang der Zweitausender dann geplatzt ist. Allerdings war die Wirtschaft nach der Energiekrise ohnehin im Abschwung und es kamen weitere äußere Faktoren dazu, die negativ wirkten. Die Dämpfung des Arbeitsmarkts ist also sicherlich nicht im Wesentlichen auf KI zurückzuführen. Außerdem ist es kein beliebtes Argument, Entlassungen damit anzukündigen, dass Technologie die Menschen ersetzt. In den USA geht das vielleicht noch eher als in Deutschland. Aber hier kann man so etwas überhaupt nicht bringen.
Wie sieht es denn auf dem deutschen Arbeitsmarkt aus? Hat der KI-Hype da bislang erkennbare Auswirkungen gezeigt?
In Deutschland haben wir jetzt seit drei Jahren schlicht Wirtschaftsabschwung, und das ist der wichtigste Grund dafür, dass die Beschäftigung abgeflacht ist. Es gibt aber bestimmte Bereiche, wo wir seit dem starken Aufkommen der generativen KI schon klare Effekte gesehen haben. Vor allem ist das auf Plattformen der Fall, wo Aufträge vergeben werden für Jobs wie Übersetzungsleistungen, Textarbeiten, grafische Gestaltung und durchaus auch Programmierarbeiten. Da war auch kurzfristig schon erkennbar, dass die Auftragslage deutlich zurückging.
Herr Weber, vielen Dank für das Gespräch!
(axk)
Entwicklung & Code
GPT-OSS: Einblick in die offenen Modelle von OpenAI
Das lange Warten auf das erste OpenAI-Modell mit offenen Gewichten hat ein Ende: OpenAI hat am 5. August GPT-OSS veröffentlicht. Bei genauerer Betrachtung zeigt sich: Das Warten hat sich gelohnt. Das Modell funktioniert hervorragend und enthält viele Innovationen. Außerdem steht es unter der sehr liberalen Apache-2.0-Lizenz zur Verfügung.
Prof. Dr. Christian Winkler beschäftigt sich speziell mit der automatisierten Analyse natürlichsprachiger Texte (NLP). Als Professor an der TH Nürnberg konzentriert er sich bei seiner Forschung auf die Optimierung der User Experience.
Architektur der Modelle
Eigentlich hat OpenAI nicht ein Modell, sondern gleich zwei veröffentlicht. Neben dem großen Modell 120B mit 117 Milliarden Parametern gibt es auch noch ein kleines 20B-Modell mit 21 Milliarden Parametern.
Beide Modelle nutzen die Mixture-of-Experts-Architektur und benötigen damit in der Inferenzphase deutlich weniger aktive Parameter, die in die Berechnung eingehen. Besonders ausgeprägt ist das beim großen Modell, das lediglich vier seiner 128 Experten gleichzeitig nutzt. Dadurch gibt es zwischen den beiden Modellen keinen großen Unterschied bei der Zahl der aktiven Parameter. Das kleinere Modell ist daher nicht viel schneller, benötigt aber deutlich weniger Arbeitsspeicher (dazu später mehr).
Modell | GPT-OSS-120B | GPT-OSS-20B |
Anzahl Parameter | 117 Milliarden | 21 Milliarden |
Anzahl aktive Parameter | 5,1 Milliarden | 3,6 Milliarden |
Anzahl Layer | 36 | 24 |
Anzahl Experten | 128 | 32 |
Anzahl aktive Experten | 4 | 4 |
Anzahl Attention Heads | 64 | 64 |
Interessant ist die Architektur der Layer: OpenAI verwendet abwechselnd eine volle Attention, also den Blick auf den gesamten Inhalt, und eine mit dem sogenannten Sliding Window, bei dem es die Inhalte in kleinere, überlappende Segmente aufteilt. Diese Variante benötigt deutlich weniger Speicher und Rechenzeit, kann aber weniger gut mit langen Kontexten umgehen. Das gleicht die volle Attention in den jeweils dazwischenliegenden Layern aus.
Weniger Speicherbedarf, flexibleres Reasoning
Auf der Model Card bei Hugging Face steht, dass das große Modell auf einer H100-GPU ausführbar ist. Das ist zunächst erstaunlich, denn 121 Milliarden Parameter sind selbst im von DeepSeek verwendeten sparsamen FP8-Format (8-bit Floating Point) zu groß. Allerdings hat OpenAI noch weiter gespart und die Gewichte im noch kompakteren MXFP4-Format (Microscaling 4-bit Floating Point) veröffentlicht, das nur halb so viel Speicher benötigt. Damit erfordert das Modell nur 60 GByte RAM für die Gewichte. Der Nachteil dabei ist, dass nur die in H100- oder RTX 5090-Karten verwendeten Hopper-GPUs von Nvidia mit diesem Format effizient rechnen können.
Auf GPUs der älteren Generation laufen die Modelle zwar, brauchen aber viermal so viel Speicher. Ein Schelm, der dabei an Cross-Sponsoring mit Nvidia denkt. Bemerkenswert ist dennoch, dass sich innerhalb nur eines Jahres das etablierte bfloat16-Format jetzt (zumindest bei diesen Modellen) auf vier Bit verkürzt hat und damit nur noch ein Viertel des Speicherplatzes notwendig ist.
OpenAI erlaubt außerdem, das Reasoning der GPT-OSS-Modelle zu konfigurieren. Man kann also festlegen, wie ausführlich die Modelle ihre Gedanken exponieren sollen. Das ist äußerst nützlich, weil manche Modelle im Reasoning-Mode zu geschwätzig sind und eine Menge Token erzeugen. Man muss also nicht nur lange Ausführungen lesen und auf das Generieren warten, sondern auch für viele Token zahlen. Wie gut diese Einstellung wirklich funktioniert, muss die Praxis zeigen.
Das neue Harmony Response Format
Bei den hybriden Qwen3-Modellen von Alibaba lässt sich durch die Angabe von /no_think
im Prompt das Reasoning ausschalten, was wenig flexibel ist. Hier hat sich OpenAI mehr Gedanken gemacht und gleich ein neues Chatformat definiert: Das Harmony Response Format ist sehr viel flexibler als alle bisherigen Chat-Templates und lässt viele Möglichkeiten der Interaktion mit den Modellen zu.
Bei näherer Betrachtung ist es fast erstaunlich, dass man so lange an den – jetzt überkommen erscheinenden – Chat-Templates festgehalten hat. Spannend ist, dass sich beim Ausprobieren des Harmony-Codes der Knowledge Cut-off von GPT-OSS im Juni 2024 findet, die jüngsten Trainingsdaten für das Modell also über ein Jahr alt sind. Dass es für Harmony auch Rust-Code gibt, könnte ein Hinweis darauf sein, dass OpenAI intern mit der Programmiersprache arbeitet, um die Effizienz der Software zu erhöhen.
Harmony ist ein deutlich flexibleres Format als die bisherigen Chat-Templates. Es erlaubt mehr Meta-Instruktionen und sogenannte Channels, die das Modell auch bei der Antwort berücksichtigt. Bei allen Vorteilen hat Harmony aber auch einen Nachteil: Durch das Verarbeiten der zusätzlichen Bereiche wie Regeln und Channels produziert das System viele Token. Die dadurch verringerte Effizienz kann auch ein abgemildertes Reasoning nicht kompensieren.
(Bild: Sikorka/Shutterstock)
Die Online-Konferenz LLMs im Unternehmen am 29. Oktober zeigt, wie man das passende Modell auswählt, die Infrastruktur aufbaut und die Sicherheit im Griff behält. Außerdem gibt der Thementag von iX und dpunkt.verlag einen Ausblick auf Liquid Foundation Models als nächste Generation von LLMs.
GPT-OSS ist ein agentisches Modell, das Funktionen aufrufen kann. OpenAI geht dabei noch einen Schritt weiter und erlaubt neuerdings das Browsen im Web. Anbieter wie Anthropic ermöglichen jedoch schon länger, mit ihren Modellen den Browser zu steuern, und Perplexity bietet sogar einen eigenen Browser an. GPT-OSS ermöglicht es außerdem, Python-Code auszuführen. Wie weit man dem generierten Code vertrauen kann, lässt sich auf Anhieb nicht gesichert sagen.
Über Details des Trainingsprozesses schweigt OpenAI sich ebenso aus wie über die dafür verwendeten Daten. Hier kocht jeder vermutlich sein eigenes Süppchen, auch die chinesischen Modellanbieter hüllen sich dazu in Schweigen. Nur für Olmo vom Allen AI Institute und SmolLM von Hugging Face sind wirklich alle Details veröffentlicht.
Entwicklung & Code
Event-Driven, Teil 7: Wie man mit Event-getriebener Architektur anfängt
Event-getriebene Architektur klingt zunächst nach einem radikalen Paradigmenwechsel – und das ist sie auch. Doch gerade weil sie auf einer anderen Denkweise beruht, ist der Einstieg oft einfacher, als viele glauben. Entscheidend ist, dass man nicht mit der Technik beginnt, sondern mit dem gemeinsamen Verständnis.
Golo Roden ist Gründer und CTO von the native web GmbH. Er beschäftigt sich mit der Konzeption und Entwicklung von Web- und Cloud-Anwendungen sowie -APIs, mit einem Schwerpunkt auf Event-getriebenen und Service-basierten verteilten Architekturen. Sein Leitsatz lautet, dass Softwareentwicklung kein Selbstzweck ist, sondern immer einer zugrundeliegenden Fachlichkeit folgen muss.
Dieser letzte Teil der Serie zeigt, wie man ein solches System in der Praxis aufbaut, welche typischen Stolperfallen man dabei vermeiden sollte und wie man Event-getriebene Architektur schrittweise einführen kann.
Reden ist wichtiger als Code
Am Anfang steht kein Code, kein Framework, keine Datenbank – sondern ein Gespräch. Wer Event-getriebene Systeme bauen will, muss zuerst verstehen, was in der Domäne passiert. Und das gelingt am besten im Dialog mit den Menschen, die diese Domäne kennen: den Fachexpertinnen und -experten.
Ein erster Schritt kann sein, gemeinsam Ereignisse zu sammeln: Was passiert in eurem Tagesgeschäft? Welche Abläufe gibt es? Welche Entscheidungen werden getroffen? Was ist wichtig, was ist selten, was ist kritisch?
Dabei hilft es, ganz bewusst in der Sprache der Fachlichkeit zu bleiben – ohne technische Begriffe, ohne JSON-Formate, ohne Implementierungsdetails.
Event Storming und ähnliche Methoden
Bewährt haben sich dabei Formate wie Event Storming: Man klebt Events als Post-Its an eine Wand, ordnet sie zeitlich und diskutiert darüber. So entstehen Schritt für Schritt die zentralen Abläufe der Domäne – verständlich, diskutierbar und überprüfbar.
In dieser Phase ist es wichtig, die Sprache ernst zu nehmen: Ein Event wie „Bestellung wurde storniert“ muss nicht nur technisch korrekt sein, sondern es muss auch inhaltlich passen. Und vor allem: Es muss für alle Beteiligten dasselbe bedeuten.
Nicht das ganze System umstellen
Ein häufiger Fehler ist, Event-getriebene Architektur gleich auf das gesamte System anwenden zu wollen. Das führt oft zu Überforderung – fachlich, organisatorisch und technisch.
Besser ist es, sich ein isoliertes Teilproblem zu suchen – einen Prozess, der in sich geschlossen ist, aber bereits von klassischen Architekturen überfordert wirkt.
Typisch sind:
- Benachrichtigungsprozesse
- Abrechnungs- oder Mahnwesen
- Genehmigungsworkflows
- Integration mit Drittsystemen
Hier lässt sich Event-getriebene Architektur gut einführen, zunächst als ergänzender Ansatz, nicht als Ersatz für das bestehende System.
Nicht die Technik überfrachten
Viele Einsteiger verlieren sich schnell in technischen Entscheidungen: Welches Event-Format soll man wählen? Welche Queue verwenden? Wie Event-Versionierung lösen?
Diese Fragen sind wichtig, aber nicht am Anfang. Wer Events als fachliche Beschreibung ernst nimmt, kann diese zunächst einfach als strukturierte Objekte behandeln – selbst ohne Event-Store oder Queue. Die technische Infrastruktur lässt sich nach und nach ergänzen.
Erst wenn klar ist, welche Events entstehen, wann sie entstehen und was sie bedeuten, lohnt es sich, über Serialisierung, Partitionierung und Replikation nachzudenken.
Was sich langfristig verändert
Wer einmal damit beginnt, in Events zu denken, verändert die eigene Sicht auf Systeme dauerhaft. Man beginnt, Abläufe nicht mehr als Abfolge von Methodenaufrufen zu sehen, sondern als Geschichte von Ereignissen. Und das hat viele positive Effekte:
- Die Kommunikation mit dem Fachbereich wird klarer.
- Die Modelle werden stabiler.
- Die Systeme werden flexibler und nachvollziehbarer.
- Neue Anforderungen lassen sich oft mit vorhandenen Events umsetzen.
Fazit und Ausblick
Event-getriebene Architektur ist kein Selbstzweck – und keine technische Mode. Sie ist eine Antwort auf Systeme, die zu unübersichtlich, zu gekoppelt und zu schwer veränderbar geworden sind. Wer Systeme baut, die sich natürlich weiterentwickeln lassen sollen, findet in Events ein kraftvolles Werkzeug.
Diese Serie hat den Bogen gespannt – von den Grenzen klassischer Architektur über die Bausteine, Denkweisen und Fallstricke bis hin zum konkreten Einstieg. Wer den nächsten Schritt gehen möchte, findet auf cqrs.com weitere Ressourcen, konkrete Beispiele und vertiefende Konzepte.
(mai)
-
Datenschutz & Sicherheitvor 2 Monaten
Geschichten aus dem DSC-Beirat: Einreisebeschränkungen und Zugriffsschranken
-
Online Marketing & SEOvor 2 Monaten
TikTok trackt CO₂ von Ads – und Mitarbeitende intern mit Ratings
-
Apps & Mobile Entwicklungvor 2 Monaten
Metal Gear Solid Δ: Snake Eater: Ein Multiplayer-Modus für Fans von Versteckenspielen
-
Digital Business & Startupsvor 1 Monat
10.000 Euro Tickets? Kann man machen – aber nur mit diesem Trick
-
UX/UI & Webdesignvor 2 Monaten
Philip Bürli › PAGE online
-
Digital Business & Startupsvor 1 Monat
80 % günstiger dank KI – Startup vereinfacht Klinikstudien: Pitchdeck hier
-
Apps & Mobile Entwicklungvor 2 Monaten
Patentstreit: Western Digital muss 1 US-Dollar Schadenersatz zahlen
-
Social Mediavor 2 Monaten
Aktuelle Trends, Studien und Statistiken