---
title: "Blog — encircle360 GmbH"
description: "Latest insights, best practices and expertise from software development, AI and digital transformation."
url: "https://encircle360.com/en/blog"
language: "en"
type: "collection"
post_count: 48
feed: "https://encircle360.com/en/blog/feed.xml"
alternates:
  de: "https://encircle360.com/de/blog"
publisher:
  name: "encircle360 GmbH"
  url: "https://encircle360.com"
  email: "hello@encircle360.com"
  phone: "+49 214 736999-80"
  address: "Petersbergstraße 72, 51375 Leverkusen, DE"
  linkedin: "https://www.linkedin.com/company/encircle360"
---

# Blog — encircle360 GmbH

Latest insights, best practices and expertise from software development, AI and digital transformation.

Every page of this website is also available as Markdown: append `.md` to the URL or send the header `Accept: text/markdown`. Index for agents: https://encircle360.com/llms.txt

## Articles (48)

### [CI Runners in a microVM: Docker Builds with Kata Containers on Kubernetes](https://encircle360.com/en/blog/ci-runners-kata-containers-microvm)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 31 August 2026 · 10 min read · Categories: Cloud Native, Security_

CI jobs execute third-party code next to a privileged Docker daemon — an unnecessary risk on a shared host kernel. We moved our Gitea Actions runners to Kata Containers and documented the five pitfalls nobody warns you about.

### [From Manifest to Production: How ADL, A2A and the Inference Gateway Are Revolutionizing Agent Infrastructure](https://encircle360.com/en/blog/adl-a2a-agent-definition-language)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 5 July 2026 · 12 min read · Categories: AI & Machine Learning, Software Engineering_

AI agents need a declarative contract – just like APIs need OpenAPI. Discover how ADL (Agent Definition Language), the A2A protocol, the Inference Gateway, and Spring Boot enable production-ready agent infrastructure – from code generation through OCI images to Kubernetes and GitOps.

### [Agent Orchestration with Java: Bringing LLM Agents to Production on the JVM](https://encircle360.com/en/blog/agent-orchestration-java)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 4 July 2026 · 6 min read · Categories: AI & Machine Learning, Software Engineering_

AI agents are more than a clever chatbot: they plan, call tools and work through multi-step tasks. Turning that into reliable software takes orchestration — and it doesn't have to happen in Python. With Spring AI, LangChain4j and Quarkus, the Java ecosystem has reached a point in 2025/2026 where agent systems can be cleanly integrated into existing enterprise landscapes. This article shows what matters when it comes to architecture.

### [Spring AI: How Java Developers Can Finally Integrate AI Features the Right Way](https://encircle360.com/en/blog/spring-ai-java-integration)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 25 March 2026 · 5 min read · Categories: AI & Machine Learning, Software Engineering_

Adding AI capabilities to a Java backend used to mean building infrastructure from scratch. Spring AI changes the game — with familiar Spring principles and provider-agnostic abstractions.

### [Spring Security and Keycloak: Setting Up an OAuth2 Resource Server](https://encircle360.com/en/blog/spring-security-keycloak-oauth2)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 17 March 2025 · 6 min read · Categories: Software Engineering_

We show how we secure our Spring Boot services as an OAuth2 Resource Server with Keycloak -- from the security configuration and JWT validation to method-level security and testing.

### [GitOps with Helmfile and Kyverno: Our Deployment Workflow](https://encircle360.com/en/blog/helmfile-kyverno-gitops-workflow)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 10 March 2025 · 7 min read · Categories: Cloud Native_

Helmfile for declarative deployments and Kyverno for policy enforcement complement each other ideally in a GitOps workflow. We show how we bring both together in our CI pipeline.

### [Idempotent APIs: Robust Interfaces for Distributed Systems](https://encircle360.com/en/blog/idempotent-api-design)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 17 February 2025 · 6 min read · Categories: Software Engineering_

In distributed systems, network failures and retries are inevitable. Idempotent APIs ensure that repeated requests do not produce unwanted side effects -- a pattern we use in every microservice.

### [K3s and KubeVirt: Converged Infrastructure on Bare Metal](https://encircle360.com/en/blog/k3s-kubevirt-converged-infrastructure)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 20 January 2025 · 6 min read · Categories: Cloud Native_

Running containers and VMs on a single platform -- without separate hypervisor hosts. How we built a converged infrastructure with K3s, KubeVirt, and NixOS on bare metal that unifies both worlds.

### [Nix Instead of Docker: Rethinking Development Environments](https://encircle360.com/en/blog/nix-development-environments)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 9 December 2024 · 6 min read · Categories: Software Engineering_

Why we chose Nix Flakes and direnv over Docker Compose for local development environments -- and how this leads to faster, lighter, and more reproducible dev setups.

### [GraalVM Native Images: Pitfalls and Solutions](https://encircle360.com/en/blog/graalvm-native-image-pitfalls)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 14 October 2024 · 6 min read · Categories: Software Engineering_

After four years of experience with GraalVM Native Images, we know the typical pitfalls -- from reflection issues to missing resources to debugging without JVM tools. A field report.

### [Spring Boot with Virtual Threads: Migration and Benchmarks](https://encircle360.com/en/blog/spring-boot-virtual-threads-practice)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 19 August 2024 · 6 min read · Categories: Software Engineering_

With a single property, Spring Boot 3.2+ makes Virtual Threads available -- we show the migration, compare benchmarks with platform threads, and explain when switching is worthwhile.

### [Our Self-Hosted Stack 2024: Open-Source Tools Overview](https://encircle360.com/en/blog/self-hosted-stack-2024)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 10 June 2024 · 7 min read · Categories: Cloud Native_

Three and a half years after our first self-hosting article, our stack has evolved significantly. An overview of the open-source tools running on our K3s clusters in 2024.

### [KubeVirt 1.0 in Practice: VMs and Containers United](https://encircle360.com/en/blog/kubevirt-practical-experiences)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 15 April 2024 · 6 min read · Categories: Cloud Native_

KubeVirt has reached 1.0 and is CNCF Incubating. After a year and a half of production use on our K3s clusters with NixOS, we take stock -- from live migration to CDI storage to monitoring with Prometheus.

### [Kyverno in Production: Lessons Learned After Two Years](https://encircle360.com/en/blog/kyverno-production-experiences)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 15 January 2024 · 6 min read · Categories: Cloud Native_

After two years of Kyverno in production, we share our experiences: from Audit to Enforce, policy testing in the CI/CD pipeline, and the policies every cluster should have.

### [NixOS in Practice: Reproducible Server Configuration](https://encircle360.com/en/blog/nixos-reproducible-servers)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 20 November 2023 · 6 min read · Categories: Cloud Native_

After nearly two years of running NixOS on our servers, we take stock: Nix Flakes, remote deployments, and shared configuration modules have fundamentally changed our K3s infrastructure.

### [Java 21 LTS: Virtual Threads, Record Patterns, and More](https://encircle360.com/en/blog/java-21-lts-virtual-threads)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 25 September 2023 · 7 min read · Categories: Software Engineering_

Java 21 is arguably the most significant LTS release in years -- Virtual Threads are finally GA and fundamentally change the concurrency model. We look at the most important features.

### [Helmfile for Multi-Cluster Deployments: Environments and Selectors](https://encircle360.com/en/blog/helmfile-multi-cluster-management)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 3 July 2023 · 6 min read · Categories: Cloud Native_

A single Helmfile is enough for one cluster. But managing three K3s clusters with different configurations requires environments, selectors, and a well-thought-out directory structure.

### [Virtual Threads in Java: Project Loom Becomes Reality](https://encircle360.com/en/blog/java-virtual-threads-preview)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 17 April 2023 · 7 min read · Categories: Software Engineering_

With Java 19, Virtual Threads have landed as a preview feature -- Project Loom is becoming tangible after years of development. We examine how Virtual Threads work, when they help, and what to consider during adoption.

### [Container Images Without a Dockerfile: Jib and Spring Boot](https://encircle360.com/en/blog/docker-images-gradle-jib)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 16 January 2023 · 5 min read · Categories: Software Engineering_

Dockerfiles are error-prone and hard to reproduce. We show why we rely on Google Jib for our Spring Boot services and how it integrates with Gradle.

### [Spring Boot 3.0: What's Changing and How to Migrate Successfully](https://encircle360.com/en/blog/spring-boot-3-migration)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 5 December 2022 · 7 min read · Categories: Software Engineering_

Spring Boot 3.0 has arrived, bringing fundamental changes with Jakarta EE, Java 17 as the baseline, and GraalVM support. We show what's changing and how to successfully migrate from 2.x.

### [Testcontainers: Integration Tests with Real Databases](https://encircle360.com/en/blog/testcontainers-integration-tests)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 12 September 2022 · 6 min read · Categories: Software Engineering_

Using H2 as an in-memory database in tests creates false confidence. With Testcontainers, we spin up real PostgreSQL instances in Docker containers and test against the same database as in production.

### [KubeVirt: Running Virtual Machines on Kubernetes](https://encircle360.com/en/blog/kubevirt-vms-on-kubernetes)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 18 July 2022 · 6 min read · Categories: Cloud Native_

Not every workload can be packed into a container. KubeVirt extends Kubernetes with the ability to manage full-fledged VMs as native objects -- and we tried it out on our K3s cluster.

### [From Groovy to Kotlin DSL: Migrating Gradle Build Scripts](https://encircle360.com/en/blog/gradle-kotlin-dsl-migration)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 9 May 2022 · 6 min read · Categories: Software Engineering_

The Gradle Kotlin DSL brings type safety and real IDE support to build scripts. We show how to successfully migrate from Groovy and what to watch out for.

### [NixOS as a Server Operating System: Declarative Infrastructure](https://encircle360.com/en/blog/nixos-server-infrastructure)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 14 February 2022 · 6 min read · Categories: Cloud Native_

Why we chose NixOS as the host operating system for our Kubernetes nodes and how declarative configuration, atomic upgrades, and rollbacks make our server infrastructure more reliable.

### [Kyverno: Kubernetes Policies Without Rego](https://encircle360.com/en/blog/kyverno-kubernetes-policies)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 6 December 2021 · 6 min read · Categories: Cloud Native_

Policy enforcement in Kubernetes does not have to be complicated. Kyverno relies on pure YAML instead of Rego and makes admission control accessible to every team.

### [Java 17 LTS: The Most Important New Features at a Glance](https://encircle360.com/en/blog/java-17-lts-new-features)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 20 September 2021 · 6 min read · Categories: Software Engineering_

Java 17 is here -- the next Long-Term-Support release after Java 11. We look at Sealed Classes, Pattern Matching, and the other highlights that make the upgrade worthwhile.

### [K3s in Production: A Field Report After Two Years](https://encircle360.com/en/blog/k3s-production-experience-report)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 28 June 2021 · 6 min read · Categories: Cloud Native_

Over two years ago, we first evaluated K3s. Today, we run production workloads on small nodes with NixOS. An honest field report about what works -- and what to watch out for.

### [Kotlin and Spring Boot in Practice: A Field Report](https://encircle360.com/en/blog/kotlin-spring-boot-practical-experience)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 12 April 2021 · 6 min read · Categories: Software Engineering_

After more than two years of Kotlin in Spring Boot projects, we take stock: what works excellently, where are the pitfalls, and would we do it again?

### [Why We Rely on Self-Hosted Open Source](https://encircle360.com/en/blog/self-hosted-open-source-infrastructure)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 18 January 2021 · 6 min read · Categories: Open Source_

Data sovereignty, flexibility, and independence from cloud providers: why we built our infrastructure on self-hosted open-source solutions.

### [Helmfile: Declarative Management for Helm Charts](https://encircle360.com/en/blog/helmfile-declarative-helm-management)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 12 October 2020 · 6 min read · Categories: Cloud Native_

Managing Helm Charts individually quickly becomes unwieldy with many services. Helmfile brings declarative management and environment-specific configurations together in a single file.

### [GraalVM: Native Images for Java Applications](https://encircle360.com/en/blog/graalvm-native-images-java)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 20 July 2020 · 6 min read · Categories: Software Engineering_

GraalVM promises lightning-fast startup times and low memory consumption through Native Images. We tried it out and report on the possibilities and limitations.

### [Implementing Hexagonal Architecture with Spring Boot](https://encircle360.com/en/blog/hexagonal-architecture-spring-boot)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 6 April 2020 · 7 min read · Categories: Software Engineering_

Hexagonal Architecture (Ports & Adapters) promises a clean separation of business logic and infrastructure. We show how we implement this pattern pragmatically with Spring Boot -- without over-engineering.

### [Helm 3: What Changed and Why It's Better](https://encircle360.com/en/blog/helm-3-changes)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 13 January 2020 · 5 min read · Categories: Cloud Native_

Helm 3 removes Tiller, simplifies the architecture, and brings numerous improvements. We summarize the most important changes and explain why the migration is worth it.

### [Kubernetes in Production: What We Learned](https://encircle360.com/en/blog/kubernetes-production-experiences)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 21 October 2019 · 7 min read · Categories: Cloud Native_

Setting up Kubernetes in a cluster is one thing — running it reliably in production is another. Our most important insights from over two years of production use.

### [Groovy in Gradle: DSL Power for Flexible Build Scripts](https://encircle360.com/en/blog/groovy-gradle-dsl-power)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 15 July 2019 · 5 min read · Categories: Software Engineering_

Gradle uses Groovy as the language for build scripts. We show why that's more than just configuration and how to fully leverage Groovy's DSL capabilities.

### [Using Spring Boot Microservices within Kubernetes using Native K8s Service Discovery and Label Filters](https://encircle360.com/en/blog/spring-boot-microservices-kubernetes-native-service-discovery)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 15 May 2019 · 12 min read · Categories: Software Engineering, Cloud Native, DevOps_

How to migrate from Netflix OSS (Eureka, Ribbon, Feign) to native Kubernetes service discovery with Spring Cloud Kubernetes, including label-based filtering and Spring Boot Admin monitoring.

### [K3s: Lightweight Kubernetes for Dev and Edge](https://encircle360.com/en/blog/k3s-lightweight-kubernetes)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 8 April 2019 · 5 min read · Categories: Cloud Native_

Rancher Labs has released K3s, a Kubernetes distribution that fits in under 100 MB. We tested it and see great potential for development environments and edge scenarios.

### [Microservice Architecture: Lessons Learned from Two Years in Practice](https://encircle360.com/en/blog/microservice-architecture-lessons-learned)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 14 January 2019 · 7 min read · Categories: Software Engineering_

Microservices are not a silver bullet. After two years of production experience, we share our most important insights — what worked and where we had to improve.

### [Java 11 LTS: Why Now Is the Time to Upgrade](https://encircle360.com/en/blog/java-11-lts-upgrade)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 29 October 2018 · 5 min read · Categories: Software Engineering_

Java 11 is the first Long-Term-Support release after Java 8. We look at the most important new features and explain why teams should migrate now.

### [Helm Charts: Standardizing Kubernetes Deployments](https://encircle360.com/en/blog/helm-charts-kubernetes-deployments)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 20 August 2018 · 6 min read · Categories: Cloud Native_

As the number of Kubernetes manifests grows, management becomes unwieldy. Helm Charts bring structure and reusability to the deployment process.

### [Spring Boot 2.0: The Most Important Changes at a Glance](https://encircle360.com/en/blog/spring-boot-2-new-features)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 14 May 2018 · 6 min read · Categories: Software Engineering_

Spring Boot 2.0 is here, bringing Spring Framework 5, reactive programming, and numerous improvements. We summarize what's changing and what to watch out for during migration.

### [Gradle Instead of Maven: Why We Made the Switch](https://encircle360.com/en/blog/gradle-instead-of-maven)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 19 February 2018 · 5 min read · Categories: Software Engineering_

Maven is the standard in the Java ecosystem, but Gradle offers tangible advantages. We explain why we made the switch and what to watch out for.

### [The First IOTA Meetup in Cologne – Summary of Our Talk and Presentation](https://encircle360.com/en/blog/first-iota-meetup-cologne-talk-presentation)

_By **Lena Bergmann**, Editor at [encircle360 GmbH](https://encircle360.com) · 22 December 2017 · 3 min read · Categories: Company News_

120 people gathered for the first German IOTA Meetup in Cologne. A summary of our talk covering IOTA basics, the ecosystem, and the future of Tangle technology.

### [How to Setup an IOTA Full Node Using Docker](https://encircle360.com/en/blog/how-to-setup-iota-full-node-using-docker)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 16 December 2017 · 8 min read · Categories: Cloud Native, DevOps, Tutorials & Guides_

A step-by-step guide on setting up an IOTA IRI full node using Docker, including configuration, neighbor discovery, and monitoring with IOTA Peer Manager.

### [Kotlin as a Language for the Spring Ecosystem](https://encircle360.com/en/blog/kotlin-spring-boot-getting-started)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 11 December 2017 · 5 min read · Categories: Software Engineering_

Kotlin gained enormous momentum in 2017. We examined how well the language works with Spring Boot and where the advantages over Java lie.

### [Java 9 and the Module System: What Developers Need to Know](https://encircle360.com/en/blog/java-9-module-system-practice)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 25 September 2017 · 6 min read · Categories: Software Engineering_

Java 9 brings the long-awaited module system (Project Jigsaw). We examine what this means for existing projects and where the benefits lie.

### [Kubernetes for Java Developers: Getting Started](https://encircle360.com/en/blog/kubernetes-getting-started-java-developers)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 19 June 2017 · 6 min read · Categories: Cloud Native_

Container orchestration with Kubernetes is becoming increasingly relevant for Java teams. We introduce the core concepts and explain why getting started is worthwhile.

### [Why We Chose Spring Boot for Microservices](https://encircle360.com/en/blog/spring-boot-microservices-getting-started)

_By **Patrick Hütter**, Founder & Software Architect at [encircle360 GmbH](https://encircle360.com) · 13 March 2017 · 5 min read · Categories: Software Engineering_

Monolithic architectures quickly reach their limits with growing teams. We explain why Spring Boot has become our framework of choice for microservices.

---

## About encircle360 GmbH

encircle360 is an owner-led software and AI company based in Leverkusen, Germany. We are a partner for professional software development and digital transformation — from discovery & strategy through product development and artificial intelligence to venture building.

- **Services:** [Discovery & Strategy](https://encircle360.com/en/services/discovery-strategy) · [Product Development](https://encircle360.com/en/services/product-development) · [Venture Building](https://encircle360.com/en/services/venture-building) · [Artificial Intelligence](https://encircle360.com/en/services/artificial-intelligence)
- **Contact:** hello@encircle360.com · +49 214 736999-80 · [encircle360.com](https://encircle360.com)
- **Address:** Petersbergstraße 72, 51375 Leverkusen, Germany
- **Social:** [LinkedIn](https://www.linkedin.com/company/encircle360) · [Xing](https://www.xing.com/pages/encircle360gmbh) · [X](https://x.com/encircle360com)

Source: [Blog — encircle360 GmbH](https://encircle360.com/en/blog) — © encircle360 GmbH. When using or summarising this content, please credit encircle360 GmbH and link back to https://encircle360.com/en/blog.

Every page of this website is also available as Markdown: append `.md` to the URL or send the header `Accept: text/markdown`. Index for agents: https://encircle360.com/llms.txt
