Skip Navigation
Show nav
Heroku Dev Center Dev Center
  • Get Started
  • Documentation
  • Changelog
  • Search
Heroku Dev Center Dev Center
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
    • .NET
  • Documentation
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log in or Sign up
View categories

Categories

  • Heroku Architecture
    • Compute (Dynos)
      • Dyno Management
      • Dyno Concepts
      • Dyno Behavior
      • Dyno Reference
      • Dyno Troubleshooting
    • Stacks (operating system images)
    • Networking & DNS
    • Platform Policies
    • Platform Principles
    • Buildpacks
  • Developer Tools
    • AI Tools
    • Command Line
    • Heroku VS Code Extension
  • Deployment
    • Deploying with Git
    • Deploying with Docker
    • Deployment Integrations
  • Continuous Delivery & Integration (Heroku Flow)
    • Continuous Integration
  • Language Support
    • Node.js
      • Working with Node.js
      • Troubleshooting Node.js Apps
      • Node.js Behavior in Heroku
    • Ruby
      • Rails Support
        • Working with Rails
      • Working with Bundler
      • Working with Ruby
      • Ruby Behavior in Heroku
      • Troubleshooting Ruby Apps
    • Python
      • Working with Python
      • Background Jobs in Python
      • Python Behavior in Heroku
      • Working with Django
    • Java
      • Java Behavior in Heroku
      • Working with Java
      • Working with Maven
      • Working with Spring Boot
      • Troubleshooting Java Apps
    • PHP
      • PHP Behavior in Heroku
      • Working with PHP
    • Go
      • Go Dependency Management
    • Scala
    • Clojure
    • .NET
      • Working with .NET
  • Databases & Data Management
    • Heroku Postgres
      • Postgres Basics
      • Postgres Getting Started
      • Postgres Performance
      • Postgres Data Transfer & Preservation
      • Postgres Availability
      • Postgres Special Topics
      • Heroku Postgres Advanced (Limited GA)
      • Migrating to Heroku Postgres
    • Heroku Key-Value Store
    • Apache Kafka on Heroku
    • Other Data Stores
  • AI
    • Inference Essentials
    • Inference API
    • Inference Quick Start Guides
    • AI Models
    • Tool Use
    • AI Integrations
    • Vector Database
  • Monitoring & Metrics
    • Logging
  • App Performance
  • Add-ons
    • All Add-ons
  • Collaboration
  • Security
    • App Security
    • Identities & Authentication
      • Single Sign-on (SSO)
    • Private Spaces
      • Infrastructure Networking
    • Compliance
  • Heroku Enterprise
    • Enterprise Accounts
    • Enterprise Teams
  • Patterns & Best Practices
  • Extending Heroku
    • Platform API
    • App Webhooks
    • Heroku Labs
    • Building Add-ons
      • Add-on Development Tasks
      • Add-on APIs
      • Add-on Guidelines & Requirements
    • Building CLI Plugins
    • Developing Buildpacks
    • Dev Center
  • Accounts & Billing
  • Troubleshooting & Support
  • Integrating with Salesforce
    • Heroku AppLink
      • Heroku AppLink Reference
      • Getting Started with Heroku AppLink
      • Working with Heroku AppLink
    • Heroku Connect (Salesforce sync)
      • Heroku Connect Administration
      • Heroku Connect Reference
      • Heroku Connect Troubleshooting
    • Other Salesforce Integrations
  • Databases & Data Management
  • Apache Kafka on Heroku
  • Apache Kafka on Heroku Version Support

Apache Kafka on Heroku Version Support

Table of Contents [expand]

  • Available Kafka Versions
  • Version Lifecycle
  • Upgrading Kafka Versions

Last updated June 30, 2026

Heroku currently offers Apache Kafka version 3.9.2 as the default for Apache Kafka on Heroku. basic Apache Kafka on Heroku plans always use the default version and Heroku upgrades to the latest default version automatically.

Available Kafka Versions

Major Version Minor Version Status End of Life Date
2.8 2.8.2 Available TBD
3.7 3.7.1 Available TBD
3.9 3.9.2 Available TBD

As a rule, the client library version must be equal to or less than the version on the cluster.

Kafka supports SSL to encrypt and authenticate connections, and this mode is the only connection mode supported in the Common Runtime. To comply, you must use a library that supports SSL encryption and client certificates. In Private Spaces, you can optionally use plaintext connections, as described below. Shield Spaces don’t support plaintext connections.

Version Lifecycle

The Apache Kafka project releases a new major version approximately every four months (3x/year). In accordance with this release schedule, we make all versions published in the last year available for new add-ons. We only support Apache Kafka versions that the upstream project maintains. One year after the most recent point release is available, we mark that major version deprecated and stop allowing new add-ons to use this version.

After deprecating a version, your cluster continues to operate normally. However, running older versions is risky as deprecated versions that the community no longer supports don’t receive bug fixes or security patches. Heroku notifies you via email about the deprecation process for your affected clusters.

We recommend that users regularly evaluate their add-on version and plan to upgrade their cluster at least once a year. By keeping up with this schedule, your cluster receives important bug fixes and notable improvements in reliability.

Upgrading Kafka Versions

To upgrade the version of a dedicated Kafka cluster, use the heroku kafka:upgrade command and provide the target version to upgrade to with the --version option:

$ heroku kafka:upgrade --version 3.9 -a example-app
 ›   Warning: This command will upgrade the brokers of the cluster to version 3.9.
 ›        Upgrading the cluster involves rolling restarts of brokers, and takes some time, depending on the
 ›        size of the cluster.

? To proceed, type example-app or re-run this command with --confirm example-app
Upgrading to version 3.9... started.

Use `heroku kafka:wait` to monitor the upgrade.

It’s important to note that the upgrade command advances the version to the latest supported stable minor version. For example, currently, heroku kafka:upgrade --version 3.9 upgrades a cluster to version 3.9.2.

This command upgrades the Kafka brokers in the cluster to the new version. Upgrading the cluster involves several process restarts of the brokers, but the brokers restart one at a time. Assuming your app can handle broker restarts, the upgrade is relatively seamless.

See Robust Usage of Kafka to ensure proper handling of broker restarts. During the upgrade period, your cluster is running mixed versions. For example, you can have one broker on 2.8 and two brokers on 3.9.

Kafka strictly promises backward protocol compatibility: you can always use a client protocol version older than the versions your cluster is running. However, you can’t use a newer client version than the one your cluster is running.

During the upgrade, you must keep your client on a version equal or lower than the version you’re upgrading from. After the upgrade finishes, denoted by the status in heroku kafka:wait, you can start using a new protocol version and any new features it supports. Heroku doesn’t require it, but recommends keeping your client on the same protocol version your cluster is running.

Keep your clusters up to date with the latest recommended version from Heroku, which is 3.9.2. Heroku performs heavy testing and validation work on all new Kafka releases, including testing the upgrade procedure, and only recommends trusted versions.

Feedback

Log in to submit feedback.

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure
  • .NET

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing
  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Github
  • LinkedIn
  • © 2026 Salesforce, Inc. All rights reserved. Various trademarks held by their respective owners. Salesforce Tower, 415 Mission Street, 3rd Floor, San Francisco, CA 94105, United States
  • heroku.com
  • Legal
  • Terms of Service
  • Privacy Information
  • Responsible Disclosure
  • Trust
  • Contact
  • Cookie Preferences
  • Your Privacy Choices