This is an automated email from the ASF dual-hosted git repository.

dajac pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/kafka-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 6e5f69e10 MINOR: Apache Kafka 4.0.0 Blog (#668)
6e5f69e10 is described below

commit 6e5f69e10fc0e7329442b8e71488e5abc0745730
Author: David Jacot <[email protected]>
AuthorDate: Tue Mar 18 15:32:14 2025 +0100

    MINOR: Apache Kafka 4.0.0 Blog (#668)
    
    Reviewers: A. Sophie Blee-Goldman <[email protected]>, Ming-Yen Chung 
<[email protected]>, Divij Vaidya <[email protected]>, Kirk True 
<[email protected]>, Mickael Maison <[email protected]>, Ismael Juma 
<[email protected]>, Matthias J. Sax <[email protected]>, Stanislav 
Kozlovski <[email protected]>, Andrew Schofield 
<[email protected]>, Lianet Magrans <[email protected]>, Sanskar 
Jhajharia <[email protected]>, Chia-Ping Tsai <chia771 [...]
---
 blog.html | 280 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 280 insertions(+)

diff --git a/blog.html b/blog.html
index 12c9a717b..24db379f0 100644
--- a/blog.html
+++ b/blog.html
@@ -22,6 +22,286 @@
         <!--#include virtual="includes/_nav.htm" -->
         <div class="right">
             <h1 class="content-title">Blog</h1>
+            <article>
+                <h2 class="bullet">
+                    <a id="apache_kafka_400_release_announcement"></a>
+                    <a href="#apache_kafka_400_release_announcement">Apache 
Kafka 4.0.0 Release Announcement</a>
+                </h2>
+                18 March 2025 - David Jacot
+                
+                <p>
+                    We are proud to announce the release of Apache Kafka&#174; 
4.0. This release contains many new
+                    features and improvements. This blog post will highlight 
some of the more prominent ones.
+                    For a full list of changes, be sure to check the <a 
href="https://archive.apache.org/dist/kafka/4.0.0/RELEASE_NOTES.html";>release 
notes</a>. 
+                </p>
+                <p>
+                    Apache Kafka 4.0 is a significant milestone, marking the 
first major release to operate entirely
+                    without Apache ZooKeeper&#174;. By running in KRaft mode 
by default, Kafka simplifies
+                    deployment and management, eliminating the complexity of 
maintaining a separate ZooKeeper
+                    ensemble. This change significantly reduces operational 
overhead, enhances scalability, and
+                    streamlines administrative tasks. We want to take this as 
an opportunity to express our gratitude
+                    to the ZooKeeper community and say thank you! ZooKeeper 
was the backbone of Kafka for
+                    more than 10 years, and it did serve Kafka very well. 
Kafka would most likely not be what it is
+                    today without it. We don’t take this for granted, and 
highly appreciate all of the hard work the
+                    community invested to build ZooKeeper. Thank you!
+                </p>
+                <p>
+                    Kafka 4.0 also brings the general availability of <a 
href="https://cwiki.apache.org/confluence/x/HhD1D";>KIP-848</a>, introducing a 
powerful new consumer
+                    group protocol designed to dramatically improve rebalance 
performance. This optimization
+                    significantly reduces downtime and latency, enhancing the 
reliability and responsiveness of
+                    consumer groups, especially in large-scale deployments.
+                </p>
+                <p>
+                    Additionally, we are excited to offer <a 
href="https://cwiki.apache.org/confluence/x/i4ogF";>early access</a> to
+                    Queues for Kafka (<a 
href="https://cwiki.apache.org/confluence/x/4hA0Dw";>KIP-932</a>), enabling 
Kafka to support traditional queue semantics directly. This
+                    feature extends Kafka’s versatility, making it an ideal 
messaging platform for a wider range of
+                    use cases, particularly those requiring point-to-point 
messaging patterns.
+                </p>
+                <p>
+                    Kafka's major releases, such as version 4.0, remove APIs 
deprecated for at least 12 months to simplify the platform, 
+                    and encourage the adoption of newer features. Notably, in 
Kafka 4.0, Kafka Clients and Kafka Streams require Java 11, 
+                    while Kafka Brokers, Connect, and Tools, now require Java 
17. This release also updates the minimum supported client 
+                    and broker versions (<a 
href="https://cwiki.apache.org/confluence/x/K5sODg";>KIP-896</a>), and defines 
new baseline 
+                    requirements for supported upgrade paths. Further details 
are provided in subsequent sections of this document. 
+                </p>
+                <p>
+                    These highlights illustrate Kafka's continued evolution to 
meet the demands of modern,
+                    scalable, and efficient data streaming and messaging 
architectures.
+                </p>
+                <p>
+                    See the <a 
href="https://kafka.apache.org/documentation.html#upgrade_4_0_0";>Upgrading to 
4.0</a> section in the
+                    documentation for the list of notable changes and detailed 
upgrade steps.
+                </p>
+                
+                <h3>Kafka Broker, Controller, Producer, Consumer and Admin 
Client</h3>
+
+                <ul>
+                    <li>
+                        <a 
href="https://cwiki.apache.org/confluence/x/HhD1D";>KIP-848: The Next Generation 
of the Consumer Rebalance Protocol</a>
+                        <br>
+                        Apache Kafka says goodbye to “stop-the-world” 
rebalances with the general availability of the
+                        next generation of the consumer rebalance protocol. It 
increases the stability and the performance
+                        of consumer groups while simplifying clients. The new 
protocol is enabled by default on the server
+                        side. Consumers must opt-in by setting 
<code>group.protocol=consumer</code>.
+                        See <a 
href="https://kafka.apache.org/40/documentation.html#consumer_rebalance_protocol";>here</a>
 for details.
+                    </li>
+                    <li>
+                        <a 
href="https://cwiki.apache.org/confluence/x/B40ODg";>KIP-890: Transactions 
Server-Side Defense</a>
+                        <br>
+                        The second phase of KIP-890 has been completed. It 
reduces the chances of “zombie transactions”
+                        during producer failures. See <a 
href="https://kafka.apache.org/40/documentation.html#transaction_protocol";>here</a>
 for details.
+                    </li>
+                    <li>
+                        <a 
href="https://cwiki.apache.org/confluence/x/4hA0Dw";>KIP-932: Queues for Kafka 
(Early Access)</a>
+                        <br>
+                        This KIP introduces the concept of a share group as a 
way of enabling cooperative consumption
+                        using Kafka topics. It does not add the concept of a 
“queue” to Kafka per se, but rather 
+                        introduces cooperative consumption to accommodate 
these queuing use-cases, using regular Kafka
+                        topics. Share groups make this possible. You can think 
of a share group as roughly equivalent to a
+                        “durable shared subscription” in existing systems.
+                        Please see the <a 
href="https://cwiki.apache.org/confluence/x/i4ogF";>Early Access Release 
Notes</a>
+                        for limitations and configurations.
+                    </li>
+                    <li>
+                        <a 
href="https://cwiki.apache.org/confluence/x/mpOzDw";>KIP-966: Eligible Leader 
Replicas (Preview)</a>
+                        <br>
+                        KIP-966 introduces Eligible Leader Replicas (ELR) in 
preview in 4.0. ELR is a subset of the ISR
+                        replicas guaranteed to have complete data up to the 
high-watermark. ELRs are safe for leader
+                        election, preventing data loss. See <a 
href="https://kafka.apache.org/40/documentation.html#eligible_leader_replicas";>here</a>
 for details.
+                    </li>
+                    <li>
+                        <a 
href="https://cwiki.apache.org/confluence/x/MYtEE";>KIP-996: Pre-Vote</a>
+                        <br>
+                        KIP-996 introduces a "Pre-Vote" mechanism to reduce 
unnecessary KRaft leader elections in Apache
+                        Kafka clusters. By allowing nodes to check their 
eligibility for leadership before initiating an election, 
+                        this approach minimizes disruptions caused by network 
partitions or transient issues.
+                    </li>
+                    <li>
+                        <a 
href="https://cwiki.apache.org/confluence/x/XA-OEg";>KIP-1076: Metrics for 
client applications KIP-714 extension</a>
+                        <br>
+                        With <a 
href="https://cwiki.apache.org/confluence/x/XA-OEg";>KIP-714</a>, cluster 
operators can now collect 
+                        client metrics directly from brokers using a plugin. 
This makes it much easier to monitor client behavior. 
+                        However, KIP-714 only gathers metrics from Kafka 
clients (admin, consumer, and producer), and doesn't cover 
+                        application-level metrics for embedded clients, such 
as Kafka Streams. To fully understand performance, 
+                        it's important to collect both client metrics and 
application-specific metrics. This KIP introduces a way 
+                        for applications that use Kafka clients to include 
their own metrics alongside the existing client metrics.
+                    </li>
+                    <li>
+                        <a 
href="https://cwiki.apache.org/confluence/x/NIyMEw";>KIP-1106: Add duration 
based offset reset option for consumer clients</a>
+                        <br>
+                        Kafka consumers support the 
<code>auto.offset.reset</code> config option, which is used when there is no 
initial
+                        offset in Kafka, or if the current offset does not 
exist any more on the server. This config currently
+                        supports earliest/latest/none options. Currently 
consumer resets might force applications to
+                        reprocess large amounts of data from earlier offsets. 
With infinite storage, it's beneficial to have a
+                        duration based offset reset strategy. This KIP allows 
applications to consume/initialize from a fixed
+                        duration when there is no initial offset in Kafka.
+                    </li>
+                    <li>
+                        <a 
href="https://cwiki.apache.org/confluence/x/XoowEg";>KIP-1043: Administration of 
groups</a>
+                        <br>
+                        KIP-848 and KIP-932 introduce new group types, 
consumer and share, respectively. The Admin Client
+                        API has limitations when dealing with newer group 
types, sometimes returning errors or incorrectly
+                        stating that groups don't exist. To address this 
challenge, a new command-line tool, <code>kafka-groups.sh</code>,
+                        and updates to existing command line tools, 
<code>kafka-consumer-groups.sh</code> and <code>kafka-share-groups.sh</code>,
+                        were made in Kafka 4.0 to enable users to view all 
groups in a cluster, along with their types and
+                        protocols —- providing accurate information even when 
the Admin Client API fails.
+                    </li>
+                    <li>
+                        <a 
href="https://cwiki.apache.org/confluence/x/w4mMEw";>KIP-1099: Extend 
kafka-consumer-groups command line tool to support new consumer group</a>
+                        <br>
+                        This KIP extends the 
<code>kafka-consumer-groups.sh</code> and the 
<code>kafka-share-groups.sh</code> command line tools to
+                        provide more information related to consumer and share 
groups. This helps when it comes to
+                        troubleshooting consumer and share groups, 
respectively introduced by KIP-848 and KIP-932.
+                    </li>
+                    <li>
+                        <a 
href="https://cwiki.apache.org/confluence/x/KYuMEw";>KIP-1102: Enable clients to 
rebootstrap based on timeout or error code</a>
+                        <br>
+                        KIP-1102 enhances Kafka client resilience by 
proactively triggering metadata rebootstrap when no
+                        updates occur within a timeout period, and allowing 
servers to explicitly signal clients to rebootstrap.
+                        This addresses previous limitations in KIP-899, where 
clients could become stuck with outdated
+                        metadata unless all brokers were unreachable.
+                    </li>
+                    <li>
+                        <a 
href="https://cwiki.apache.org/confluence/x/K5sODg";>KIP-896: Remove old client 
protocol API versions in Kafka 4.0</a>
+                        <br>
+                        For the first time, old protocol API versions have 
been removed. Users should ensure brokers are
+                        version 2.1 or higher before upgrading Java clients 
(including Connect and Streams) to 4.0. Similarly,
+                        users should ensure their Java client version is 2.1 
or higher before upgrading brokers to 4.0.
+                    </li>
+                    <li>
+                        <a 
href="https://cwiki.apache.org/confluence/x/y4kgF";>KIP-1124: Providing a clear 
Kafka Client upgrade path for 4.x</a>
+                        <br>
+                        This KIP outlines the upgrade path for Kafka Clients, 
Streams and Connect to 4.0. It is a must read
+                        before upgrading your clusters and clients.
+                    </li>
+                    <li>
+                        <a 
href="https://cwiki.apache.org/confluence/x/GCx4CQ";>KIP-653: Upgrade log4j to 
log4j2</a>
+                        <br>
+                        The logging framework has been migrated from Log4j to 
Log4j2. Users can use the
+                        <a 
href="https://logging.staged.apache.org/log4j/transform/cli.html";>log4j-transform-cli</a>
 tool to 
+                        automatically convert their existing Log4j 
configuration files to Log4j2 format. Users can also keep 
+                        using their Log4j configurations, but with certain 
limitations. Check the 
+                        <a 
href="https://logging.apache.org/log4j/2.x/migrate-from-log4j1.html#limitations-of-the-log4j-1-x-bridge";>migration
 guide</a> for details.
+                    </li>
+                    <li>
+                        <a 
href="https://cwiki.apache.org/confluence/x/RomNCg";>KIP-724: Drop support for 
message formats v0 and v1</a>
+                        <br>
+                        The message formats v0 and v1 were deprecated in 
Apache Kafka 3.0. They have been removed in 4.0.
+                    </li>
+                    <li>
+                        <a 
href="https://cwiki.apache.org/confluence/x/P4vOCg";>KIP-750: Drop support for 
Java 8 in Kafka 4.0 (deprecate in 3.0)</a> and
+                        <a 
href="https://cwiki.apache.org/confluence/x/Bov5E";>KIP-1013: Drop broker and 
tools support for Java 11 in Kafka 4.0 (deprecate in 3.7)</a>
+                        <br>
+                        Kafka Clients and Kafka Streams require Java 11, while 
Kafka Brokers, Connect and Tools now require Java 17.
+                    </li>
+                    <li>
+                        <a 
href="https://cwiki.apache.org/confluence/x/FAqpEQ";>KIP-1030: Change 
constraints and default values for various configurations</a>
+                        <br>
+                        KIP-1030 has changed the default values of some 
configurations in order to provide better defaults to
+                        users starting out using Apache Kafka. Check out the 
KIP for the details.
+                    </li>
+                </ul>
+
+                <h3>Kafka Streams</h3>
+
+                <ul>
+                    <li>
+                        <a 
href="https://cwiki.apache.org/confluence/x/gIuMEw";>KIP-1104: Allow Foreign Key 
Extraction from Both Key and Value in KTable Joins</a>
+                        <br>
+                        KIP-1104 enhances Kafka Streams by allowing foreign 
keys to be extracted directly from both
+                        record keys and values, removing the need to duplicate 
keys into values for foreign-key joins.
+                        This improvement simplifies joins, reduces storage 
overhead, and provides a more intuitive
+                        developer experience.
+                    </li>
+                    <li>
+                        <a 
href="https://cwiki.apache.org/confluence/x/TZCMEw";>KIP-1112: Allow custom 
processor wrapping</a>
+                        <br>
+                        KIP-1112 simplifies applying cross-cutting logic in 
Kafka Streams by introducing the
+                        <code>ProcessorWrapper</code> interface, enabling 
seamless injection of custom logic around Processor API
+                        and DSL processors. This eliminates previous 
redundancy and reduces the maintenance
+                        overhead caused by manually integrating logic into 
each processor individually.
+                    </li>
+                    <li>
+                        <a 
href="https://cwiki.apache.org/confluence/x/LQ6TEg";>KIP-1065: Add "retry" 
return-option to ProductionExceptionHandler</a>
+                        <br>
+                        KIP-1065 addresses persistent errors in Kafka Streams 
by allowing users to break retry loops
+                        via a new "RETRY" option in the 
<code>ProductionExceptionHandler</code>. This enhancement provides
+                        customizable error handling, enabling retries, 
graceful failures, or dropping problematic records
+                        to continue processing efficiently.
+                    </li>
+                    <li>
+                        <a 
href="https://cwiki.apache.org/confluence/x/IgstEw";>KIP-1091: Improved Kafka 
Streams operator metrics</a>
+                        <br>
+                        Kafka Streams exposes its metrics with KIP-1076. This 
KIP specifically adds a state metric for
+                        each StreamThread and the client instance itself. It 
also provides detailed visibility into 
+                        application state.
+                    </li>
+                </ul>
+
+                <h3>Kafka Connect</h3>
+
+                <ul>
+                    <li>
+                        <a 
href="https://cwiki.apache.org/confluence/x/rZWzDw";>KIP-970: Deprecate and 
remove Connect's redundant task configurations endpoint</a>
+                        <br>
+                        The endpoint <code>GET 
/connectors/{connector}/tasks-config</code> added in KIP-661 was deprecated in
+                        Apache Kafka 3.7 and is finally removed in 4.0. The 
endpoint
+                        <code>GET /connectors/{connector}/tasks</code> must be 
used as a replacement.
+                    </li>
+                    <li>
+                        <a 
href="https://cwiki.apache.org/confluence/x/jA3OEg";>KIP-1074: Allow the 
replication of user internal topics</a>
+                        <br>
+                        Previously, MirrorMaker 2 automatically excluded 
topics whose names ended with .internal or -internal, incorrectly classifying 
them 
+                        as internal topics. This behavior prevented legitimate 
business topics from being replicated unless users implemented a custom 
+                        replication policy. This KIP introduces a configurable 
option that allows users to replicate such topics without requiring custom code.
+                    </li>
+                    <li>
+                        <a 
href="https://cwiki.apache.org/confluence/x/UwotEw";>KIP-1089: Allow disabling 
heartbeats replication in MirrorSourceConnector</a>
+                        <br>
+                        Previously, MirrorSourceConnector always replicated 
heartbeat topics, which could cause issues 
+                        when multiple connectors with different configurations 
replicated topics between the same clusters, 
+                        resulting in duplicate heartbeat replication. This KIP 
introduces a configurable option to disable 
+                        heartbeat topic replication, providing users greater 
flexibility, particularly when using multiple 
+                        connectors with distinct configurations.
+                    </li>
+                    <li>
+                        <a 
href="https://cwiki.apache.org/confluence/x/uwrPEQ";>KIP-1032: Upgrade to 
Jakarta and JavaEE 10 in Kafka 4.0</a>
+                        <br>
+                        Kafka Connect previously utilized outdated JavaEE 
APIs, restricting its compatibility with contemporary Jakarta EE 
+                        frameworks and applications. KIP-1032 addresses this 
by upgrading Kafka 4.0 to Jakarta EE and JavaEE 10 APIs, 
+                        introducing Java 17 as a required minimum version, and 
aligning Kafka with current standards for improved 
+                        maintainability.
+                    </li>
+                </ul>
+                
+                <h3>Summary</h3>
+
+                <p>Ready to get started with Apache Kafka 4.0.0? Check out all 
the details in the <a 
href="https://downloads.apache.org/kafka/4.0.0/RELEASE_NOTES.html";>release 
notes</a> 
+                   and <a 
href="https://kafka.apache.org/downloads";>download</a> Apache Kafka 4.0.0.</p>
+
+                <p>This was a community effort, so thank you to everyone who 
contributed to this release, including all our users and our 175 
contributors:<br>
+                   A. Sophie Blee-Goldman, abhi-ksolves, Abhijeet Kumar, 
Abhinav Dixit, Abhishek Giri, Alieh Saeedi, Almog Gavra, Alyssa Huang,
+                   Andrew Schofield, Anshul Goyal, Ao Li, Apoorv Mittal, Arnav 
Dadarya, Arpit Goyal, Artem Livshits, Ayoub Omari, bachmanity1, 
+                   bboyleonp666, Bill Bejeck, brenden20, Bruno Cadonna, Caio 
Guedes, Calvin Liu, Chengyan, Cheryl Simmons, Chia-Chuan Yu, 
+                   Chia-Ping Tsai, Chirag Wadhwa, Chris Egerton, Christo 
Lolov, Christopher L. Shannon, ClarkChen, Clay Johnson, Colin P. McCabe, 
+                   Colt McNealy, Danica Fine, Dániel Urbán, David Arthur, 
David Jacot, David Mao, David Schlosnagle, Dejan Stojadinović, 
+                   devanshikhatsuriya, Dimitar Dimitrov, Divij Vaidya, DL1231, 
Dmitry Werner, donaldzhu-cc, Dongnuo Lyu, dujian0068, Edoardo Comar, 
+                   Eric Chang, Federico Valeri, Frederik Rouleau, GangHuo, 
Gantigmaa Selenge, Gaurav Narula, Greg Harris, Guozhang Wang, 
+                   Hailey Ni, Hongten, Hyunsang Han, Ian McDonald, Igor 
Soarez, Ismael Juma, Ivan Yurchenko, Jakub Scholz, Jason Gustafson, 
+                   Jason Taylor, Jeff Kim, Jhen-Yung Hsu, Jim Galasyn, João 
Pedro Fonseca Dantas, John Huang, JohnHuang, Jonah Hooper, 
+                   José Armando García Sancio, Josep Prat, Jun Rao, Justin 
Lee, Justine Olshan, Kamal Chandraprakash, KApolinario1120, kartik-3513, 
+                   Kaushik Raina, Ken Huang, kevin-wu24, Kirk True, Kondrat 
Bertalan, Krishna Agarwal, Kuan-Po Tseng, kwonyonghyun, Laxman Ch, 
+                   Liam Miller-Cushon, Lianet Magrans, Linsiyuan9, Linu Shibu, 
Liu Zeyu, Logan Zhu, Loïc Greffier, Lucas Brutschy, Luke Chen, 
+                   lushilin, Mahsa Seifikar, Manikumar Reddy, mannoopj, Martin 
Sillence, Mason Chen, Matthias J. Sax, Mehari Beyene, Mickael Maison, 
+                   Ming-Yen Chung, mingdaoy, msureshpro, Murali Basani, Nancy, 
Nick Guo, Nick Telford, Oleg Bonar, Oleksandr K., Omnia Ibrahim, 
+                   Parker Chang, Patrik Marton, Paul R. Mellor, Peter Lee, 
Philip Nee, PoAn Yang, Rajini Sivaram, Ramin Gharib, Ritika Reddy, 
+                   Robert Young, Rohan, S.Y. Wang, Said Boudjelda, Sanskar 
Jhajharia, santhoshct, Sasaki Toru, Satish Duggana, Saxon Chen, 
+                   Scott Hendricks, Sean Quah, Sebastien Viale, Shivsundar R, 
snehashisp, Stanislav Knot, Steven Xu, stevenbooke, Stig Døssing, 
+                   Sushant Mahajan, Swikar Patel, TaiJuWu, tall15421542-lab, 
TapDang, Ted Yan, TengYao Chi, Thomas Thornton, Tim Fox, 
+                   tkuramoto33, Tom Duckering, Vedarth Sharma, Vikas Singh, 
Viktor Somogyi-Vass, Vincent Jiang, wperlichek, xijiu, Xuan-Zhang Gong, 
+                   yangjf2019, Yaroslav Kutsela, Yash Mayya, Yung, yungh, 
yx9o, Zhengke Zhou, Ziming Deng, 陳昱霖 (Yu-Lin Chen)
+                </p>
+            </article>
             <article>
                 <h2 class="bullet">
                     <a id="apache_kafka_390_release_announcement"></a>

Reply via email to