# Keycloak 26.1.0 released

DevFeed: [Keycloak 26.1.0 released](<https://devfeed.tech/articles/keycloak-26-1-0-released-31680.md>)

Original publisher: [Read original article](<https://www.keycloak.org/2025/01/keycloak-2610-released>)

Author: Keycloak Team

Published: 2025-01-15T00:00:00Z

Content type: release

Language: en

Sources: [Keycloak Blog](<https://devfeed.tech/sources/keycloak-blog.md>)

Topics: [Keycloak](<https://devfeed.tech/topics/keycloak.md>), [Database](<https://devfeed.tech/topics/database.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [OpenTelemetry](<https://devfeed.tech/topics/opentelemetry.md>), [tracing](<https://devfeed.tech/topics/tracing.md>), [openjdk](<https://devfeed.tech/topics/openjdk.md>), [version](<https://devfeed.tech/topics/version.md>)

Tags: [cloud](<https://devfeed.tech/tags/cloud.md>), [database](<https://devfeed.tech/tags/database.md>), [deprecated](<https://devfeed.tech/tags/deprecated.md>), [idm](<https://devfeed.tech/tags/idm.md>), [jdbc](<https://devfeed.tech/tags/jdbc.md>), [kerberos](<https://devfeed.tech/tags/kerberos.md>), [keycloak](<https://devfeed.tech/tags/keycloak.md>), [keycloak-release](<https://devfeed.tech/tags/keycloak-release.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [ldap](<https://devfeed.tech/tags/ldap.md>), [openid-connect](<https://devfeed.tech/tags/openid-connect.md>), [openjdk](<https://devfeed.tech/tags/openjdk.md>), [opentelemetry](<https://devfeed.tech/tags/opentelemetry.md>), [release](<https://devfeed.tech/tags/release.md>), [saml](<https://devfeed.tech/tags/saml.md>), [sso](<https://devfeed.tech/tags/sso.md>), [tracing](<https://devfeed.tech/tags/tracing.md>), [version](<https://devfeed.tech/tags/version.md>)

## AI overview

Keycloak 26.1.0 changes the default cluster transport stack to database-based discovery, simplifying cloud deployments by removing the need for multicast and dynamic TCP ports. The release also enables virtual threads on OpenJDK 21, makes OpenTelemetry tracing fully supported and enabled by default, and includes configuration and credential-issuance improvements.

## Source excerpt

To download the release go to Keycloak downloads. Highlights Transport stack jdbc-ping as new default Keycloak now uses by default its database to discover other nodes of the same cluster, which removes the need of additional network related configurations especially for cloud providers. It is also a default that will work out-of-the-box in cloud environments. Previous versions of Keycloak used as a default UDP multicast to discover other nodes to form a cluster and to synchronize the replicated caches of Keycloak. This required multicast to be available and to be configured correctly, which is usually not the case in cloud environments. Starting with this version, the default changes to the jdbc-ping configuration which uses Keycloak's database to discover other nodes. As this removes the need for multicast network capabilities and UDP and no longer using dynamic ports for the TCP-based failure detection, this is a simplification and a drop-in replacement for environments which used the previous default. To enable the previous behavior, choose the transport stack udp which is now deprecated. The Keycloak Operator will continue to configure kubernetes as a transport stack. See the Configuring distributed caches guide for more information. Virtual Threads enabled for Infinispan and JGroups thread pools Starting from this release, Keycloak automatically enables the virtual thread pool support in both the embedded Infinispan and JGroups when running on OpenJDK 21. This removes the need to configure the JGroups thread pool, the need to align the JGroups thread pool with the HTTP worker thread pool, and reduces the overall memory footprint. OpenTelemetry Tracing supported In the previous release, the OpenTelemetry Tracing feature was preview and is fully supported now. It means the opentelemetry feature is enabled by default. There were made multiple improvements to the tracing capabilities in Keycloak such as: Configuration via Keycloak CR in Keycloak Operator Custom sp