Blog & Articles

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?

In this part of the mini-series, we explain everything you need to do when creating software architecture. First, we take a look at the necessary tasks and activities. Then we discuss some of the skills and capabilities required for these architecture tasks.

Article

Combinable Elements for User Interfaces on the Web

Components in web applications

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

Ich weiß nicht, wie es Ihnen geht, aber seitdem mit JDK 9 der Release-Zyklus des JDK auf sechs Monate verkürzt wurde und wir mittlerweile, dank Preview und Incubator, auch Features bereits vor der vollständigen Fertigstellung ausprobieren können, wirkt das JDK lebendiger als eh und je. In diesem Artikel wollen wir deswegen einen Blick in die Zukunft werfen und uns aktuelle Preview-Features anschauen, die es vermutlich in naher Zukunft final ins JDK schaffen werden.

Blog Post

Entwickeln mit ChatGPT

Wie KI meine Programmierarbeit revolutioniert

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

Welcome to the second part in the mini-series on software architecture.

Article

Building, purpose, aesthetics

Fundamentals of software architecture - Part 1

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

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

Rate Limiting with Spring Boot

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!

Die Digitalisierung hilft, Bürokratie zu reduzieren, glaubt man. Warum das so einfach nicht ist, erklärt diese Kolumne.

Blog Post

Was treibt dich an?

Wie unterschiedliche Auslöser unterschiedliche Ansätze der Softwaremodernisierung bedingen

Article

Automatisierte Code-Wartung mit OpenRewrite

In Teil 1 dieser Serie habe ich gezeigt, wie OpenRewrite im Rahmen von Softwareentwicklungsprojekten zur Automatisierung von Code-Wartungsaufgaben verwendet werden kann. In diesem Beitrag zeige ich nun, wie man eigene OpenRewrite-Rezepte schreibt. Das hilft Dir nicht nur dabei, Refactoring-Aufgaben auszuführen, für die es keine öffentlich zugänglichen Rezepte gibt, sondern auch dabei, zu verstehen, wie OpenRewrite unter der Haube funktioniert.

Blog Post

Rooting Out Issues: JPA and Lombok Combination Problems Demystified

Ever encountered perplexing issues with JPA and Lombok’s @Data annotation when handling entities in Java? This blog post explores unexpected behaviors, especially with auto-generated IDs, in conjunction with equals and hashCode methods. Learn about identity and uncover how you can resolve these challenges forever.

Blog Post

Die Anatomie eines erfolgreichen Teams

…und worauf Sie bei der Zusammenstellung eines erfolgreichen Software-Entwicklungsteams achten sollten

Blog Post

Schema Evolution

Using Kafka, sooner or later you might want to describe a schema to specify your data structures. Since software continuously changes during it’s lifetime you’ll also have to evolve your schema. In this article we’ll discuss approaches and tools which can guide you in the realization of your schema evolution.

Article

Automated code maintenance with OpenRewrite

With the large number of software development projects in most organisations, keeping these projects up to date with the latest security patches and framework updates can be quite a task. OpenRewrite is a library that provides an automated solution to this problem. Using recipes written in Java, it can perform large-scale source code refactoring during the build process, preserving as much of the original code as possible. In this blog post, I will explain how OpenRewrite works and how you can use it to refactor your code base.

Blog Post

Micro Frontends With Ionic And Capacitor

Article

Die Ökonomie von Gut & Crypto I

Der Hype um Crypto-Technologien ist etwas abgeklungen. Ein guter Zeitpunkt, die Möglichkeiten und ihre soziotechnischen Aspekte strukturiert zu betrachten. Die folgenden Kolumnen betrachten einige der Themen, die im Zusammenhang mit Crypto-Technologien immer wieder benannt werden oder für die sie Lösungen versprechen.

Blog Post

Testing your GitLab CI/CD pipeline

If you develop a pipeline as a service for other development teams you should treat it as a product and establish product development processes, a versioning strategy, etc. around it. Besides that, as potentially many teams will use and rely on your pipeline you want to make sure that new features don’t break existing functionality. This ensures that your customer base remains happy and able to deliver business value. Therefore you need some sort of testing and we will demonstrate a way to (integration-) test your GitLab CI/CD pipeline.

Blog Post

Mit Reviews in Legacy-Situationen orientieren

Article

JDK 21, the next long-term support release

The newest JDK release, version 21, appeared on September 19th. A number of developers view it as a long-term support release that will be supported for at least the next five years. As many applications will presumably be updated to version 21 from JDK 17, the last long-term support release, we would like to take this opportunity to examine the relevant changes from 17 to 21.