Software-Architektur

Fokus auf die Sicherheit: Aktuelle Möglichkeiten bei API-Gateways

Das Konzept von Microservices ist beinahe deckungsgleich mit Cloud-nativen Anwendungen: kleine Komponenten, die miteinander vernetzt und als lose verknüpfte Services bereitgestellt werden. Um APIs erfolgreich in Microservices-Umgebungen einzusetzen, müssen Unternehmen Tools bereitstellen, die Entwicklern die automatisierte Erstellung, Implementierung und Veröffentlichung von APIs ermöglichen – idealerweise als Teil einer CI/CD Pipeline. Anzustreben ist dabei eine iterative Vorgehensweise mit starkem Fokus auf Sicherheit.

Pulsar Schema Registry: Einführung in Apache Pulsar – Teil 3

Wann immer zwei Systeme über ein Netzwerk Daten miteinander austauschen, ist die elementare Frage, in welchem Format dies geschehen soll – unabhängig davon, ob dieser Austausch synchron oder asynchron stattfindet. Bei Message-basierten Systemen hat diese Frage einen besonderen Stellenwert, da die teilnehmenden Systeme voneinander so wenig Kenntnis wie möglich haben sollten und die Datenmodellierung somit eine besonders hohe Priorität besitzt. Im Rahmen dieses Artikels möchten wir diskutieren, welche Möglichkeiten Apache Pulsar von Haus aus bietet, um mit Hilfe der enthaltenen Schema Registry einen performanten, zukunftssicheren und einfachen Austausch von Nachrichten zu ermöglichen.

Pulsar Schema Registry: Einführung in Apache Pulsar – Teil 3

Wann immer zwei Systeme über ein Netzwerk Daten miteinander austauschen, ist die elementare Frage, in welchem Format dies geschehen soll – unabhängig davon, ob dieser Austausch synchron oder asynchron stattfindet. Bei Message-basierten Systemen hat diese Frage einen besonderen Stellenwert, da die teilnehmenden Systeme voneinander so wenig Kenntnis wie möglich haben sollten und die Datenmodellierung somit eine besonders hohe Priorität besitzt. Im Rahmen dieses Artikels möchten wir diskutieren, welche Möglichkeiten Apache Pulsar von Haus aus bietet, um mit Hilfe der enthaltenen Schema Registry einen performanten, zukunftssicheren und einfachen Austausch von Nachrichten zu ermöglichen.

Inkrementelle Codegenerierung mit CobiGen: Brückenbauer in der Open-Source-Welt – Teil 3

Etablierte Referenzarchitekturen wie devonfw machen es möglich, ein hohes Maß an Standardisierung über verschiedene Softwareprojekte hinweg zu etablieren. Starke Vorgaben, wie beispielweise Namenskonventionen für Quellcodeartefakte, bieten darüber hinaus eine klare Sichtbarkeit der Architektur auf der Quellcodeebene. Sind solche Vorgaben für (agile) Entwickler durchzuhalten und führt Schichtenbildung nicht teilweise zu nervigem Boilerplate-Code?

Wer mit wem reden darf: Architekturpatterns in Modulithen – Teil 2

So manche Codebase macht nur auf den ersten Blick einen aufgeräumten Eindruck. Schön in Packages sortierter Code ohne Abhängigkeitsmanagement ist wie ein „aufgeräumtes“ Kinderzimmer, bei dem einem die Lawine entgegenkommt, wenn man es wagt, die Schranktür aufzumachen. Um zu verhindern, dass Abhängigkeitszyklen und wuchernde Queraufrufe den Code zu einem „Big Ball of Mud“ machen, gilt es, höllisch aufzupassen.

Das Persistenzmodell von Pulsar: Einführung in Apache Pulsar – Teil 2

Egal, ob es sich um ein Event-getriebenes System oder um die Verteilung von Massendaten handelt: Robuste, performante und skalierfähige Datenhaltung ist für eine hochperformante Messaging-Lösung von elementarer Bedeutung. Im zweiten Teil unserer Artikelreihe zum Thema Apache Pulsar möchten wir daher unser Augenmerk auf das Persistenzmodell legen, das Pulsar mit Hilfe von Apache BookKeeper zur Verfügung stellt, und die grundlegenden Konzepte sowie einige mögliche Anwendungsfälle und Beispiele vorstellen.

Enterprise Tales: Mehr Backend wagen – im Frontend!

Das Frontend ist seit jeher ein wichtiger Bestandteil der meisten Anwendungen. Mit dem Aufschwung von Single Page Applications (SPA) hat sich die Komplexität jedoch im Gegensatz zu Ansätzen, bei denen das gesamte HTML im Backend erzeugt wird, enorm erhöht. Sofern die Wahl auf eine SPA als Frontend-Lösung fällt, steht natürlich sofort eine wichtige Frage im Raum: Wie kann man als Entwickler die neue Komplexität im Frontend bändigen?