Blog & Articles

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.

Article

Terms

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

Blog Post

Rate Limiting with Spring Boot, Bucket4j, and Redis

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

Let’s implement rate-limiting protection for your Spring Boot server without the need for any additional dependencies beyond those included in the Spring Boot Starter package.

Blog Post

Compacted State Feeds

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?

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?

Article

Automatisierte Code-Wartung mit OpenRewrite

Teil 2

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

Die Gründe für das Scheitern von Softwareentwicklungsprojekten sind vielfältig und zum Großteil nicht technischer, sondern organisatorischer Art: Zu hohe Komplexität, unklare Anforderungen, nicht-funktionale Teams, Fokus auf den falschen Dingen oder überhandnehmende Konzernpolitik. Bereits zum Projektstart können Maßnahmen getroffen werden, um einige dieser Risiken einzudämmen und die Aussicht auf einen Projekterfolg zu erhöhen. Dieser Artikel wird den Fokus auf ein funktionierendes, erfolgreiches Entwicklungsteam legen und erörtern, welche Stellschrauben Sie drehen können – und von welchen Sie lieber die Finger lassen sollten.

Blog Post

Schema Evolution

with Apache Avro

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

We planned and set up a micro frontend architecture using Capacitor and Ionic. In this article, I talk about some of the challenges we faced and the ways we solved them.

Article

Die Ökonomie von Gut & Crypto I

Soziotechnische Welten - Teil 11

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

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.

Article

JDK 21, the next long-term support release

An overview of the changes since JDK 17

Article

Containers for tests and local development with Spring Boot 3.1

Spring Boot 3.1.0, the most recent minor release of Spring Boot 3, appeared in May. In this article, we will be taking a look at how the new support for Testcontainers and Docker Compose can help us with tests and local development.

Article

Testing in Spring Boot applications

In addition to production code, we typically also write tests to discover and correct possible errors as early as possible in the development process. For new functionality, it isn’t even uncommon to write more test code than production code. At the same time, the tests should be as fast as possible, so they can be executed frequently without causing long delays. In this article, we explore how this can be done in applications based on Spring Boot.

Blog Post

How to bootstrap a tech conference with a 100% women+ speaker lineup

A look back to the Women+ in Data and AI Summer Festival as we plan ahead for 2024

Article

No future-proof architectures!

Architecture: The term itself radiates stability. It seems clear, then, that good architecture should be future-proof. But precisely this goal often leads to problems. Does that mean it is better not to design future-proof architectures?

Article

Is Platform Engineering the new DevOps?

When companies transition to the cloud, they anticipate an improved developer workflow, shorter release cycles, and more robust end-to-end team responsibility. However, even after the admin team delivers the new platform with all its capabilities, software teams may hesitate to adopt it and assume responsibility. But why? Is it not every developer’s desire to control the process from committing code to deploying it to production? One possible explanation is a lack of emphasis on the developer experience during platform conceptualization. This article aims to identify common issues and explore whether platform engineering can help to address them.

Article

Willkommen im Himmel

Mit Mehrwert zur profitablen Cloud

Blog Post

Concise Documentation – Revisited

You think architecture documentation is cumbersome and takes a long time to create? We will prove you wrong.