Blog & Articles

Article

E-Commerce im Wandel

Die Digitale Transformation und die kontinuierliche Marktentwicklung stellen Händler vor immer neue Herausforderungen. Um den Anschluss im digitalen Handel nicht zu verpassen, benötigt es ein solides Grundgerüst aus Strategie und Technik.

Blog Post

OpenID Connect Auth-Proxy

Mit OpenID Connect kann Single Sign-On in einem verteilten System erreicht werden. Ein Auth-Proxy kapselt den Aspekt Authentifizierung in einem eigenständigen Modul. Wir schauen uns an, wie das im Detail umgesetzt werden kann.

Blog Post

Architecture Governance mit Stereotypen

Blog Post

Blockchain Mining: Embarrassingly Parallel?

In this blog post, we are going to look at three different approaches at mining new blocks in a blockchain using Rust, all of them using multiple threads, and we’re going to compare their runtime performances with each other and with that of the two single-threaded solutions from the previous post.

Blog Post

Blockchain Mining with Rust

Recently, at one of our yearly hands-on events, we took on the challenge of implementing our own blockchain. One of the core challenges of this is the mining of new blocks. In this blog post, I want to show two different approaches we tried out for this task, using the Rust programming language.

Blog Post

Multiple Worktrees aus einem lokalen git-Repo.

Blog Post

Hast mal ein paar Euro?

Heute schon ein Encodingproblem gehabt? Nein? Dann bestimmt nächste Woche! Dieser kurze Blogpost hat einen Tipp parat, wie man ein System schnell auf Encoding-Probleme testen kann.

Blog Post

Understanding decomposed

I think we can all agree that having our codebases more readable and understandable would make our lives much easier. In this post, I’m trying to point out at least a few ideas that influence understanding.

Blog Post

10 Fragen zum Arbeiten bei INNOQ

Article

Einsatz von Containern zum Testen

Container setzen sich beim Betrieb von Anwendungen immer mehr durch. Doch auch abseits davon helfen diese bei der Entwicklung und dem Testen von Anwendungen. Dieser Artikel zeigt, wie mithilfe der Java Bibliothek Testcontainers Container innerhalb von JUnit Tests verwendet werden können.

Blog Post

Technical Debt Just Happens

“Technical debt” is a great metaphor to reason about the quality of a software project. But a closer look also reveals some problems and shows approaches how to deal with software quality even better.

Blog Post

Microservices? Or Rather Monoliths?

After the Hype

Blog Post

A Playground for Testing OpenID Connect

This post describes how you can set up a development environment in order to play around with your OpenID client implementation. When running your application in a cluster, it can be difficult to test how it will behave behind a load balancer. One factor that can be particularly difficult to test is when you are communicating with an OAuth 2.0 or OpenID Connect server which expects that a request will be redirected back to the same application instance that it came from.

Article

Blockchain hausgemacht

120 Mitarbeiterinnen und Mitarbeiter bauen eine Blockchain in 12 Sprachen. Bei INNOQ veranstalten wir jedes Jahr einen so genannten Hands-On-Event. Dieser ist Teil unserer regulären Mitarbeiter-Events und findet typischerweise im Frühjahr statt. Wir treffen uns alle für zwei Tage an einem Ort und versuchen mit der Programmiersprache unserer Wahl in Gruppen eine definierte Aufgabe zu lösen. Optimal also, um neue Sprachen und neue Kolleginnen und Kollegen in Gruppenarbeit kennenzulernen. Die Aufgabenstellung lautete in diesem Jahr: Baue eine Blockchain!

Blog Post

Native Clojure with GraalVM

Article

Domain- und Test-driven Development mit Spring Boot 2 Softwarearchitektur

Am Anfang eines Projektes wird heutzutage in der Regel Wert auf Tests gelegt. Projekte werden sogar testgetrieben aufgesetzt (Test-driven-development, TDD). TDD-Projekte der reinen Lehre schreiben vor, dass vor jeder Zeile Anwendungscode der entsprechende Testcode geschrieben werden muss. Schleicht sich Stress ein oder lässt die Begeisterung nach, kann es passieren, dass das Thema Tests – obwohl wichtig – vernachlässigt werden. Das gilt umso mehr, je schwieriger Komponenten eines Systems zu testen sind, unabhängig, ob sie einzeln oder integriert betrachtet werden. Lesen Sie hier, wie Ihnen ein Domain-orientierter Ansatz zusammen mit Spring Boot 2 dabei hilft, Qualität sicherzustellen.

Blog Post

Spring-less testing

Spring is a great project, it helps a lot with common, usually mundane, tasks. But it’s not always unicorns and rainbows. Too much Spring in tests can cause a few issues like long execution time and fragility. Here, I’m showing how to avoid such pitfalls.

Blog Post

Oracles GraalVM für „Native Java“?

Blog Post

Schubladendenken - aber konstruktiv

Verwendung von Stereotypen im Code als Basis für ein gemeinsames Architekturverständnis - und mehr

Blog Post

Domain Exceptions?

In jedem Softwaresystem kommt es zu Ausnahmesituationen. In der Regel handelt es sich um technische Ausnahmen, die in Java als Exceptions auftreten und behandelt werden. Gibt es aber auch fachliche Ausnahmen, also quasi “Domain Exceptions”? Und ist es sinnvoll, diese in Java als Exceptions zu modellieren? Einige Beispiele aus einem Kundenprojekt zeigen, dass dies häufig nicht der Fall ist.

Blog Post

dprox – Declarative Reverse Proxy

Blog Post

Secure Kubernetes Cluster

Containers and Kubernetes have greatly simplified the way we bring software into production. Applications can be packaged in container images and run on a Kubernetes cluster with 5000+ nodes. However, it should not be forgotten that, despite being encapsulated in containers, various aspects of safety still have an important role to play.

Blog Post

Sichere Kubernetes Cluster

Container und Kubernetes haben die Art und Weise, wie wir Software in Produktion bringen stark vereinfacht. Anwendungen lassen sich in Container Images verpacken und auf einem Kubernetes-Cluster mit mehreren Knoten betreiben. Bei all der Einfachheit sollte aber nicht vergessen werden, dass trotz der Kapselung in Container verschiedene Aspekte der Sicherheit noch immer eine wichtige Rolle spielen müssen.

Article

Java 10 – Evolution statt Revolution

Die Zukunft von Java

Blog Post

Taking Screenshots of DOM Elements

Now that PhantomJS is dead, we need an alternative. Turns out that Puppeteer, Google’s official remote-control API for Chrome, is just the ticket.