Blog & Articles

Article

Die Ökonomie von Gut & Crypto II

Im vorherigen Teil dieser Kolumne wurde die soziale Funktion und die Funktionsweise von Vertrauen betrachtet und die Frage gestellt, inwiefern Technologie diese Funktion unterstützen oder sogar übernehmen kann. Diesmal soll es um die Frage gehen, inwieweit Vermittler dabei eine Rolle spielen und welche Auswirkungen Technologie auf diese hat.

Blog Post

gRPC

One of the main tasks that business sets for IT as an industry is the creation of effective software, according to criteria that clearly meet the needs of this business. On the other side, one of the main prerequisites for achieving the goals that a business sets for itself is the ability to hire specialists who can create a product in the shortest possible time and/or effectively maintain it. Accordingly, to achieve this, the technology stack used, i.e. tools, must be mature enough, and widely used in the market.

Blog Post

Type-safe HTTP routing in Java and Rust

The Type-Safe Web Stack, Part 1

Article

Was ist eigentlich htmx?

Nicht nur, aber vor allem im JVM-Umfeld stößt man in letzter Zeit immer wieder auf die Bibliothek htmx. Das Versprechen von htmx ist dabei nichts Geringeres, als das fehlende Puzzlestück von HTML zu sein. Deswegen wollen wir uns hier diese Bibliothek im Detail anschauen. Schließlich sollten wir in der Lage sein zu beurteilen, ob es uns in unseren Projekten hilft oder ob wir doch nach etwas anderem suchen sollten.

Article

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.

Blog Post

Bestehende Rich Clients erneuern

Führen alle Wege ins Web?

Article

Where does it go from here?

In this (fifth) installment of the mini-series on software architecture, we leave behind the realm of small to medium-sized systems and take a look at large, risky, and complex projects. In other words, we examine the “scaling” of the role of software architecture.

Article

Who does it?

In this (fourth) installment of the mini-series on software architecture, we explain who might carry out the architecture tasks that were discussed in the previous articles. I also present a number of possible role definitions for software architecture along with their pros and cons.

Blog Post

Communicating organizational changes with “Team Topologies”

Article

Automating Dependency Updates with Renovate

Regardless of whether we are working on an application or a library, we always have to deal with dependencies. We are dependent on the version of our programming language, on external or internal libraries, and on tools. In addition to the actual administrative tasks, it is also necessary to update these regularly. Even beyond performing the update itself, this means we need to learn when a new version exists. That’s why this article examines a bot-based solution that can help us with this exact issue.

Article

Technologies for the Integration of Services

In the course of an internal study, we asked a number of INNOQ consultants about their experiences in current or past development projects. One interesting topic here was the integration of microservices and self-contained systems (SCS). Asynchronous communication is frequently used in distributed systems to enable better scalability, greater resilience, and looser coupling. In this article, you will read what insights we learned in our conversations.

Article

Tasks and activities – How is it done?

Fundamentals of software architecture – Part 3

Article

Combinable Elements for User Interfaces on the Web

The way we develop user interfaces on the web has changed significantly in recent years. In this column, we therefore want to examine what a modern approach looks like and which challenges this poses, especially for classic template engines from the Java world.

Blog Post

Extending the OpenTelemetry Java Agent for Spring Auto-Instrumentation

OpenTelemetry is great. A few days ago, I was diving a bit more into the intrinsics of the OpenTelemetry standard and the Java auto-instrumentation in particular.

Article

Zukünftige Features des JDK

Ein Blick in die Glaskugel

Blog Post

Entwickeln mit ChatGPT

In der Welt der Softwareentwicklung ist das Wissen darüber, wo man Informationen findet, oft wertvoller als alles auswendig zu wissen. Doch was, wenn ein Werkzeug nicht nur Informationen liefert, sondern auch lernt, Probleme zu lösen und beim Entwickeln zu assistieren? In diesem Blog Post berichte ich aus meinem Alltag als Entwicklerin und wie mich ChatGPT bei beruflichen Aufgaben unterstützt - sei es bei der Einarbeitung in neue Programmiersprachen, dem Schreiben von Skripten oder dem Umsetzen von kreativen Ideen.

Article

The Evolutionist

The current training and further education of software developers strongly focuses on the development of new software. Conferences and trade magazines are full of new programming languages, new tools, new hypes, which seemingly never cease to amaze. Quick results, direct feedback, and unprecedented productivity are suggested. The urge to incorporate the new into one’s software is awakened – until one is brought back to reality: their own legacy system.

Article

Terms

Fundamentals of software architecture – Part 2

Article

Building, purpose, aesthetics

Welcome to the first part in the mini-series on software architecture. We start by examining the original source of the term – since the word architecture presumably conjures in most people thoughts of buildings.

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

Blog Post

Lokale LLMs mit Ollama und Spring AI nutzen

Egal, ob wir wollen oder nicht, um AI und speziell Large Language Models (LLM) kommen wir aktuell nicht herum. Mich schrecken solche Hypes zwar aus Reflex eher ab. Allerdings sieht es so aus, als würde von diesem Hype mehr bleiben als vom letzten, der Blockchain. Deshalb wollen wir uns in diesem Post einmal anschauen, wie man ein LLM lokal aufsetzen kann und dieses mittels Spring AI in eine Spring Boot-Anwendung einbinden kann.

Blog Post

Compacted State Feeds

Event notification vs. Event-carried State Transfer vs. Delta loads. How to design good event architectures for mutable data?

Article

Es lebe die Bürokratie!

Soziotechnische Welten - Teil 10

Blog Post

Was treibt dich an?

In der heutigen schnelllebigen Welt der Softwareentwicklung ist die Modernisierung von Software eine unerlässliche Aufgabe, um mit ständig ändernden Anforderungen und Technologien Schritt zu halten. Es gibt immens viele Ansätze zur Modernisierung von Software. Aber es ist eine Herausforderung, die richtigen Werkzeugkästen in den richtigen Situationen zu finden. Wie schön wäre es, die eine «Ultimative Softwaremodernisierungsmethode™️» in den Händen zu halten, die all die Probleme mit den in die Jahre gekommenen Softwaresysteme lösen kann?