The Apache Kafka community is pleased to announce the release for Apache Kafka 1.0.0.
This is a major release of the Kafka project, and is no mere bump of the version number. The Apache Kafka Project Management Committee has packed a number of valuable enhancements into the release. Let me summarize a few of them: ** Since its introduction in version 0.10, the Streams API has become hugely popular among Kafka users, including the likes of Pinterest, Rabobank, Zalando, and The New York Times. In 1.0, the the API continues to evolve at a healthy pace. To begin with, the builder API has been improved (KIP-120). A new API has been added to expose the state of active tasks at runtime (KIP-130). Debuggability gets easier with enhancements to the print() and writeAsText() methods (KIP-160). And if that’s not enough, check out KIP-138 and KIP-161 too. For more on streams, check out the Apache Kafka Streams documentation (https://kafka.apache.org/docu mentation/streams/), including some helpful new tutorial videos. ** Operating Kafka at scale requires that the system remain observable, and to make that easier, we’ve made a number of improvements to metrics. These are too many to summarize without becoming tedious, but Connect metrics have been significantly improved (KIP-196), a litany of new health check metrics are now exposed (KIP-188), and we now have a global topic and partition count (KIP-168). Check out KIP-164 and KIP-187 for even more. ** We now support Java 9, leading, among other things, to significantly faster TLS and CRC32C implementations. Over-the-wire encryption will be faster now, which will keep Kafka fast and compute costs low when encryption is enabled. ** In keeping with the security theme, KIP-152 cleans up the error handling on Simple Authentication Security Layer (SASL) authentication attempts. Previously, some authentication error conditions were indistinguishable from broker failures and were not logged in a clear way. This is cleaner now. ** Kafka can now tolerate disk failures better. Historically, JBOD storage configurations have not been recommended, but the architecture has nevertheless been tempting: after all, why not rely on Kafka’s own replication mechanism to protect against storage failure rather than using RAID? With KIP-112, Kafka now handles disk failure more gracefully. A single disk failure in a JBOD broker will not bring the entire broker down; rather, the broker will continue serving any log files that remain on functioning disks. ** Since release 0.11.0, the idempotent producer (which is the producer used in the presence of a transaction, which of course is the producer we use for exactly-once processing) required max.in.flight.requests.per.connection to be equal to one. As anyone who has written or tested a wire protocol can attest, this put an upper bound on throughput. Thanks to KAFKA-5949, this can now be as large as five, relaxing the throughput constraint quite a bit. All of the changes in this release can be found in the release notes: https://dist.apache.org/repos/dist/release/kafka/1.0.0/RELEASE_NOTES.html You can download the source release from: https://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.0/kafka-1.0.0-src.tgz and binary releases from: https://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.0/kafka_2.11-1.0.0.tgz (Scala 2.11) https://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.0/kafka_2.12-1.0.0.tgz (Scala 2.12) ------------------------------------------------------------ --------------------------------------- Apache Kafka is a distributed streaming platform with four four core APIs: ** The Producer API allows an application to publish a stream records to one or more Kafka topics. ** The Consumer API allows an application to subscribe to one or more topics and process the stream of records produced to them. ** The Streams API allows an application to act as a stream processor, consuming an input stream from one or more topics and producing an output stream to one or more output topics, effectively transforming the input streams to output streams. ** The Connector API allows building and running reusable producers or consumers that connect Kafka topics to existing applications or data systems. For example, a connector to a relational database might capture every change to a table.three key capabilities: With these APIs, Kafka can be used for two broad classes of application: ** Building real-time streaming data pipelines that reliably get data between systems or applications. ** Building real-time streaming applications that transform or react to the streams of data. Apache Kafka is in use at large and small companies worldwide, including Capital One, Goldman Sachs, ING, LinkedIn, Netflix, Pinterest, Rabobank, Target, The New York Times, Uber, Yelp, and Zalando, among others. A big thank you for the following 108 contributors to this release! Abhishek Mendhekar, Xi Hu, Andras Beni, Andrey Dyachkov, Andy Chambers, Apurva Mehta, Armin Braun, Attila Kreiner, Balint Molnar, Bart De Vylder, Ben Stopford, Bharat Viswanadham, Bill Bejeck, Boyang Chen, Bryan Baugher, Colin P. Mccabe, Koen De Groote, Dale Peakall, Damian Guy, Dana Powers, Dejan Stojadinović, Derrick Or, Dong Lin, Zhendong Liu, Dustin Cote, Edoardo Comar, Eno Thereska, Erik Kringen, Erkan Unal, Evgeny Veretennikov, Ewen Cheslack-Postava, Florian Hussonnois, Janek P, Gregor Uhlenheuer, Guozhang Wang, Gwen Shapira, Hamidreza Afzali, Hao Chen, Jiefang He, Holden Karau, Hooman Broujerdi, Hugo Louro, Ismael Juma, Jacek Laskowski, Jakub Scholz, James Cheng, James Chien, Jan Burkhardt, Jason Gustafson, Jeff Chao, Jeff Klukas, Jeff Widman, Jeremy Custenborder, Jeyhun Karimov, Jiangjie Qin, Joel Dice, Joel Hamill, Jorge Quilcate Otoya, Kamal C, Kelvin Rutt, Kevin Lu, Kevin Sweeney, Konstantine Karantasis, Perry Lee, Magnus Edenhill, Manikumar Reddy, Manikumar Reddy O, Manjula Kumar, Mariam John, Mario Molina, Matthias J. Sax, Max Zheng, Michael Andre Pearce, Michael André Pearce, Michael G. Noll, Michal Borowiecki, Mickael Maison, Nick Pillitteri, Oleg Prozorov, Onur Karaman, Paolo Patierno, Pranav Maniar, Qihuang Zheng, Radai Rosenblatt, Alex Radzish, Rajini Sivaram, Randall Hauch, Richard Yu, Robin Moffatt, Sean McCauliff, Sebastian Gavril, Siva Santhalingam, Soenke Liebau, Stephane Maarek, Stephane Roset, Ted Yu, Thibaud Chardonnens, Tom Bentley, Tommy Becker, Umesh Chaudhary, Vahid Hashemian, Vladimír Kleštinec, Xavier Léauté, Xianyang Liu, Xin Li, Linhua Xin We welcome your help and feedback. For more information on how to report problems, and to get involved, visit the project website at http://kafka.apache.org/ Thanks, Guozhang Wang