UNPKG

27 kBMarkdownView Raw
1# Changelog
2
3All notable changes to this project will be documented in this file.
4
5The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
6and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
7
8
9## [2.2.0] - 2022-08-16
10
11### Added
12 - Add the ability to inject custom authentication mechanisms #1372
13 - Add admin methods `alterPartitionReassignments` & `listPartitionReassignments` #1419
14
15### Fixed
16 - Fix deprecation warning when connecting to a broker over TLS via IP address #1425
17 - Improve consumer performance when subscribed to thousands of topics #1436
18
19## [2.1.0] - 2022-06-28
20
21### Added
22 - Add `pause` function to `eachMessage`/`eachBatch` to pause the current topic-partition #1364
23 - The `KafkaMessage` type is now a union between the pre-Kafka 0.10 message format and the current #1401
24
25### Fixed
26 - Fix 100% CPU utilization when all brokers are unavailable #1402
27 - Fix persistent error when trying to produce after a topic authorization error #1385
28 - Fix error when aborting or committing an empty transaction #1388
29 - Don't re-process messages from a paused partition after breaking the consumption flow #1382
30
31## [2.0.2] - 2022-05-31
32
33### Fixed
34 - Fix `consumer.seek` when seeking on multiple partitions for the same topic #1378
35
36## [2.0.1] - 2022-05-23
37
38### Fixed
39 - Fix members leaving the group after not being assigned any partitions #1362
40 - Make `REPLICA_NOT_AVAILABLE` retriable #1351
41 - Document `admin.createTopics` respecting cluster default partitions number and replication factor #1360
42
43## [2.0.0] - 2022-05-06
44
45This is the first major version released in 4 years, and contains a few important breaking changes. **A [migration guide](https://kafka.js.org/docs/migration-guide-v2.0.0) has been prepared to help with the migration process.** Be sure to read it before upgrading from older versions of KafkaJS.
46
47### Added
48 - Validate configEntries when creating topics #1309
49 - New `topics` argument for `consumer.subscribe` to subscribe to multiple topics #1313
50 - Support duplicate header keys #1132
51
52### Removed
53 - **BREAKING:** Drop support for Node 10 and 12 #1333
54 - **BREAKING:** Remove deprecated enum `ResourceTypes` #1334
55 - **BREAKING:** Remove deprecated argument `topic` from `admin.fetchOffsets` #1335
56 - **BREAKING:** Remove deprecated method `getTopicMetadata` from admin client #1336
57 - **BREAKING:** Remove typo type `TopicPartitionOffsetAndMedata` #1338
58 - **BREAKING:** Remove deprecated error property originalError. Replaced by `cause` #1341
59
60### Changed
61 - **BREAKING:** Change default partitioner to Java compatible #1339
62 - Improve consumer performance #1258
63 - **BREAKING:** Enforce request timeout by default #1337
64 - **BREAKING** Honor default replication factor and partition count when creating topics #1305
65 - Increase default authentication timeout to 10 seconds #1340
66
67### Fixed
68 - Fix invalid sequence numbers when producing concurrently with idempotent producer #1050 #1172
69 - Fix correlation id and sequence number overflow #1310
70 - Fix consumer not restarting on retriable connection errors #1304
71 - Avoid endless sleep loop #1323
72
73## [1.16.0] - 2022-02-09
74
75### Added
76 - Allow manual heartbeating from inside `eachMessage` handler #1255
77 - Add `rebalancing` consumer event #1067 #1079
78 - Add overload typings for all event types #1202
79 - Return `configSource` in `admin.decribeConfigs` #1023
80 - Add `topics` property to `admin.fetchOffsets` to fetch offsets for multiple topics #992 #998
81 - Improve error output from `admin.createTopic` #1104
82 - Export Error classes #1254
83 - Validate `brokers` list contains strings #1284
84 - Throw error when failing to stop or disconnect consumer #960
85
86### Changed
87
88 - Don't commit offsets from `consumer.seek` when `autoCommit` is `false` #1012
89 - Do not restart the consumer on non-retriable errors #1274
90 - Downgrade consumer rebalance error log to `warn` #1279
91 - Make default round-robin partitioner topic-aware #1112
92
93### Fixed
94 - Fix `offset` type of `consumer.seek` #981
95 - Fix crash when used in Electron app built with electron-builder #984
96 - Improve performance of Fetch requests #985
97 - Fix crash when using topics with name of built-in Javascript functions #995
98 - Fix type of consumer constructor to require config object #1002
99 - Fix message type to allow `null` key #1037
100 - Respect `heartbeatInterval` when invoking `heartbeat` concurrently #1026
101 - Fix type of `timestamp` of `LoggerEntryContent` to be string #1082
102 - Fix return type of `admin.describeAcls` #1118
103 - Fix consumer getting stuck in `DISCONNECTING` state if in-flight requests time out during disconnect #1208
104 - Fix failed serialization of BigInts when logging #1234
105 - Fix crash when committing offsets for a topic before consumer initialization #1235
106 - Reauthenticate to all brokers on demand #1241
107 - Remove unnecessary warn log when calling `admin.deleteTopicRecords` with offset `-1` #1265
108 - Handle empty control batches #1256
109 - Send empty topic array as null when fetching metadata #1184
110
111## [1.15.0] - 2020-11-24
112### Added
113 - Initial work for static membership #888
114 - Add consumer instrumentation event: received unsubscribed topics #897
115 - Add option for `admin.fetchOffsets` to resolve the offsets #895
116 - Add ACL functions to admin client #697
117 - Add `admin.deleteTopicRecords` #905
118 - Emit `GROUP_JOIN` event on stale partition assignments #937
119
120### Changed
121 - Added properties to error classes typescript types #900
122 - Make header value type definition possibly undefined #927
123 - Bump API versions for client-side throttling #933
124 - Add `UNKNOWN_TOPIC_OR_PARTITION` check for `addMultipleTargetTopics` #938
125
126### Fixed
127 - Fix describe/alter broker configs (introduced `ConfigResourceTypes`) #898
128 - Fix record batch compression masking (fix ZSTD compression) #912
129 - Prevent inflight's correlation id collisions #926
130 - Fix ACL, ISocketFactory and SaslOptions type definitions #941 #959 #966
131 - Fix deadlock on the connection `onError` handler #944
132 - Fix deadlock on the connection `onTimeout ` handler #956
133 - Remove nested retriers from producer #962 (fixes #958 #950)
134
135## [1.14.0] - 2020-09-21
136### Added
137 - Support Produce v6 protocol #869
138 - Support Produce v7 protocol (support for ZSTD compression) #869
139 - Broker rediscovery with config.brokers parameter taking a callback function #854 #882
140
141### Changed
142 - Remove long.js in favor of BigInt #663
143 - Remove allowExperimentalV011 flag #847
144
145### Fixed
146 - Only commit offsets on eachMessage failures if autoCommit is enabled #866
147 - Fix consumer offsets not committed if consumer stop was invoked right after the batch process #874
148 - Remove brokers with closed connections from the brokers list #878
149 - Type improvements and fixes #877
150
151## [1.13.0] - 2020-09-10
152### Added
153 - Add listGroup method to admin interface #645
154 - Add describeCluster method to admin client #648
155 - Add createPartitions method to admin client #661
156 - Add deleteGroups method to admin client #646
157 - Add listTopics method to admin client #718
158 - Add describeGroups method to admin client #742
159 - Allow to handle consumer retry failure at the user level #643
160 - Support Fetch v8 protocol (including client-side throttling) #776
161 - Support Fetch v9 protocol #778
162 - Support Fetch v10 protocol #792
163 - Support Fetch v11 protocol #810
164 - Support JoinGroup v3 and v4 protocol #801
165 - Oauthbearer support #680
166 - Add new protocol errors #824
167 - Add versioning to docs #835
168 - Add fetch topic offsets by timestamp #604
169 - Support LOG_APPEND_TIME record timestamps #838
170 - Suppress JoinGroup V4+ response error log when memberId is empty #860
171
172### Changed
173 - Replace fetch promise all with async generator #570
174 - Improve balance in the RoundRobinAssigner #635
175 - Add single requestTimeout runner instead of setTimeout per request #650
176 - Provide the subscribed topics to the protocol() function #545
177 - Only wait for the lock when there are enqueued batches #670
178 - Update consumer default retries to 5 #720 (related to #719)
179 - Simplify and speed up SeekOffsets #668
180 - Remove maxInFlight option from default retry and moved into Producer ad Consumer #754
181 - Use addMultipleTargetTopics instead of looping over multiple calls to addTargetTopic #748
182 - Only disconnect the consumer and producers if they were created #784
183 - Resolve socket requests without response immediately when they have been queued #785
184 - Move default request timeout from connection to cluster #739
185 - Simplify the BufferedAsyncIterator #671
186 - Ensure fair fetch response allocation across topic-partitions #859
187
188### Fixed
189 - Type improvements and fixes #636 #664 #675 #722 #729 #758 #799 #813 #757 #749 #764 #828 #843 #839
190 - Remove invalid topics from targetTopics on INVALID_TOPIC_EXCEPTION #666
191 - Fix network buffering performance problems #669
192 - Delete the entry for the waiter when the timeout is reached #694
193 - Fix encoder instanceof issue with Encoder #685
194 - Fix default retry for consumer #719
195 - Runner#waitForConsumer uses consuming stop event instead of timers #724
196 - Fix unhandled rejections #714 #797
197 - Make Array shuffle test pass in Node >= 11.0.0 #740
198 - Use setImmediate when scheduling calls of scheduleFetch #752
199 - Improve offset commit handling #775
200 - Use the length from the message to pre-allocate the result array #771
201 - Fix application lock in case of errors before the connection is established #780
202 - Add isNaN check for concurrency limit #787
203 - Fix admin client createTopics timeout #800
204 - Avoid repeated costly copies of buffers when working with encoders #811
205 - Fix fall-back retry config for producer #851
206
207## [1.12.0] - 2020-01-30
208### Added
209 - Force refresh of metadata when topic is not present #556
210 - Expose ConsumerRunConfig type #615
211 - Randomize order of seed brokers #632
212
213### Changed
214 - Support TLS SNI by default #512
215 - Changed typing of `logLevel` argument of `logCreator` #538
216 - Add type boolean in ssl KafkaConfig #557
217 - Allow logging Fetch response payload buffers #573
218 - Remove default null for logCreator #595
219 - Add error names to ensure error names work with webpack + uglify #602
220 - Merge TopicMessages by topic in producer sendBatch #626
221
222### Fixed
223 - Skip control records without auto-resolve #511
224 - Handle empty member assignment #567
225 - Only fetch for partitions with initialized offsets #582
226 - Get correct next offset for compacted topics #577
227 - TS type definition for removing instrumentation event listeners #608
228 - Fixed IHeaders definition to accept plain strings #547
229 - Make TS type ProducerBatch fields optional #610
230 - Fix typings for logger getters #620
231
232## [1.11.0] - 2019-09-30
233### Added
234 - Add Typescript SASLMechanism type to definitions #477
235 - Allow SASL Connections to Periodically Re-Authenticate #496
236
237### Changed
238 - Throw validation error when the broker list is empty #460
239 - Improve the encoder to avoid copying unnecessary bytes #471
240 - Throw an error on subscription changes for running consumers #470
241 - Default `throttle_time_ms` to 0 if missing in `ApiVersions` response #495
242 - Remove normalisation of the password when using SCRAM mechanism #505
243
244### Fixed
245 - Fix built-in partitioners type definition error #455
246 - Detect replaced brokers on refresh metadata #457
247 - Make NodeJS REPL get correct `randomBytes()` #462
248 - Fix `IHeaders` type definition (from string to Buffer) #467
249 - Rename Typescript definitions from `ResourceType` to `ResourceTypes` #468
250 - Update Typescript definitions to make `configNames` optional in `ResourceTypes` #474
251 - Fix `transactionState.ABORTING` value #478
252
253## [1.10.0] - 2019-07-31
254### Added
255 - Allow the consumer to pause and resume individual partitions #417
256 - Add `consumer.commitOffsets` for manual committing #436
257 - Expose consumer paused partitions #444
258
259### Changed
260 - Removed unnecessary async code #434
261 - Use SubscriptionState to track member assignment #429
262
263### Fixed
264 - Improve type compatibility with @types/kafkajs #416
265 - Fix `fetchTopicMetadata` return type #433
266
267## [1.9.3] - 2019-06-27
268### Fixed
269 - Fix AWS-IAM mechanism name #411 #412
270 - Fix TypeScript types for topic subscription with RegExp #413
271
272## [1.9.2] - 2019-06-26
273### Fixed
274 - Fix typescript types for Logger, consumer pause and resume, eachMessage and EachBatch interfaces #409
275
276## [1.9.1] - 2019-06-25
277### Fixed
278 - Fix typescript types for SSL, SASL and batch #407
279
280## [1.9.0] - 2019-06-25
281### Added
282 - Add typescript declaration file #362 #385 #390
283 - Add `requestTimeout` to apiVersions #369
284 - Discard messages saw a seek operation during a fetch or batch processing #367
285 - Include fetched offset metadata retrieved with `admin.fetchOffsets` #389
286 - Allow offset metadata to be written as part of OffsetCommit requests #392
287 - Prevent the consumption of messages for topics paused while fetch is in-flight #397
288 - Add `AWS-IAM` SASL mechanism #402
289 - Add `batch.offsetLagLow` #405
290
291### Changed
292 - Don't modify `global.crypto` #365
293 - Change log level about producer without metadata #382
294 - Update encoder to write arrays as single `Buffer.concat` where possible #394
295
296### Fixed
297 - Log error message on connection errors #400
298 - Make sure runner has connected brokers and fresh metadata before it starts #404
299
300## [1.8.1] - 2019-06-25
301### Fixed
302 - Make sure runner has connected brokers and fresh metadata before it starts #404
303
304## [1.8.0] - 2019-05-13
305### Added
306 - Add partition-aware concurrent mode for `eachMessage` #332
307 - Add `JavaCompatiblePartitioner` #358
308 - Add `consumer.subscribe({ topic: RegExp })` #346
309 - Update supported protocols to latest of Kafka 1 #343 #347 #348
310
311### Changed
312 - Add documentation link to `REBALANCE_IN_PROGRESS` error #341
313
314### Fixed
315 - Fix crash on offline replicas in metadata v5 response #350
316
317## [1.7.0] - 2019-04-12
318### Fixed
319 - Improve compatibility with terserjs #338
320
321### Added
322 - Add `admin#fetchTopicMetadata` #331
323
324### Changed
325 - Deprecated `admin#getTopicMetadata` #331
326 - `admin#fetchTopicOffsets` returns the low and high watermarks #333
327
328## [1.6.0] - 2019-04-01
329### Added
330 - Allow providing a socketFactory on client creation #263
331 - Add fetchTopicOffsets method #314
332
333## [1.5.2] - 2019-04-01
334### Fixed
335 - Process a fixed number of lock releases per iteration on `lock#release` #323
336
337### Changed
338 - Use the max between the default request timeout and the protocol override #318
339 - Only emit events if there are listeners #321
340
341## [1.5.1] - 2019-03-14
342### Fixed
343 - Handle `null` keys on isAbortMarker #312
344
345### Changed
346 - Prevent subsequent calls to `consumer#run` to override the running consumer #305
347 - Improve browser compatibility #300
348 - Add custom `requestTimeout` for protocol fetch #310
349 - Make `requestTimeout` optional, the current implementation is behind the flag `enforceRequestTimeout` #313
350
351## [1.5.0] - 2019-03-05
352### Changed
353 - See `1.5.0-beta.X` versions
354
355## [1.5.0-beta.4] - 2019-02-28
356### Fixed
357 - Abort old transactions on protocol error `CONCURRENT_TRANSACTIONS` #299
358
359## [1.5.0-beta.3] - 2019-02-20
360### Fixed
361 - Missing default restart time on crashes due to retriable errors #283
362 - Add custom requestTimeout for JoinGroup v0 #293
363 - Fix propagation of custom retry configs #295
364
365### Changed
366 - Allow calling `Producer.sendBatch` with empty list #287
367 - Encode non-buffer key as string by default #291
368
369## [1.5.0-beta.2] - 2019-02-13
370### Fixed
371 - Handle undefined message key when producing with 0.11 #247
372 - Fix consumer restart on find coordinator errors #253
373 - Crash consumer on codec not implemented error #256
374 - Fix error message on invalid username or password #270
375 - Restart consumer on crashes due to retriable error #269
376 - Remove deleted topics from the cluster target group #273
377
378### Changed
379 - Change Node engine requirement to >=8.6.0 #250
380 - Don't include lockfile and vscode files in package #264
381
382### Added
383 - Allow configuring log level at runtime #278
384
385## [1.5.0-beta.1] - 2019-01-17
386### Fixed
387 - Rolling upgrade from 0.10 to 0.11 causes unknown magic byte errors #246
388
389### Changed
390 - Validate consumer groupId #244
391
392### Added
393 - Expose network queue size event to consumers, producers and admin #245
394
395## [1.5.0-beta.0] - 2019-01-08
396### Changed
397 - Add transactional attributes to record batch #199
398 - Ignore control records #208
399 - Filter aborted messages on the consumer #223 #210 #228
400 - Make Round robin assigner forward `userdata` #231
401
402### Added
403 - Protocol `FindCoordinator` v1 #189
404 - Protocol `InitProducerId` v0 #190
405 - Protocol `AddPartitionsToTxn` v0 #191
406 - Protocol `AddOffsetsToTxn` v0 #194
407 - Protocol `TxnOffCommit` v0 #195
408 - Protocol `EndTxn` v0 #198
409 - Protocol `ListOffsets` v1 and v2 #217 #209
410 - Accept max in-flight requests on the connection #216
411 - Idempotent producer #203
412 - Transactional producer #206
413 - Protocol `SASLAuthenticate` #229
414 - Add SendOffsets to consumer `eachBatch` #232
415 - Add network instrumentation events #233
416 - Allow users to provide offsets to the `commitOffsetsIfNecessary` #235
417
418## [1.4.8] - 2019-02-18
419### Fixed
420 - Handle undefined message key when producing with 0.11 #247
421 - Fix consumer restart on find coordinator errors #253
422 - Crash consumer on codec not implemented error #256
423 - Fix error message on invalid username or password #270
424
425## [1.4.7] - 2019-01-17
426### Fixed
427 - Rolling upgrade from 0.10 to 0.11 causes unknown magic byte errors #246
428
429## [1.4.6] - 2018-12-03
430### Fixed
431 - Always assign partitions based on subscribed topics #227
432
433## [1.4.5] - 2018-11-28
434### Fixed
435 - Fix crash in mitigation for receiving metadata for unsubscribed topics #221
436
437### Added
438 - Add `CRASH` instrumentation event for the consumer #221
439
440## [1.4.4] - 2018-10-29
441### Fixed
442 - Protocol produce v3 wasn't filtering `undefined` timestamps and was sending timestamp 0 (`NaN` converted) for all messages #188
443
444## [1.4.3] - 2018-10-22
445### Changed
446 - Version `1.4.2` without test files
447
448## [1.4.2] - 2018-10-22
449### Changed
450 - Allow messages with a value of `null` to support tombstones #185
451
452## [1.4.1] - 2018-10-17
453### Fixed
454 - Decode multiple RecordBatch on protocol Fetch v4 #179
455 - Skip incomplete record batches #182
456 - Producer with `acks=0` never resolve #181
457
458### Added
459 - Runtime flag for displaying buffers in debug output #176
460 - Add ZSTD to compression codecs and types #157
461 - Admin get topic metadata #174
462
463### Changed
464 - Add description to lock instances #178
465
466## [1.4.0] - 2018-10-09
467### Fixed
468 - Potential offset loss when updating offsets for resolved partitions #124
469 - Refresh metadata on lock timeout #131
470 - Cleans up stale brokers on metadata refresh #131
471 - Force metadata refresh on `ECONNREFUSED` #134
472 - Handle API version not supported #135
473 - Handle v0.10 messages on v0.11 Fetch API #143
474
475### Added
476 - Admin delete topics #117
477 - Update metadata api and allow to disable auto topic creation #118
478 - Use highest available API version #135 #146
479 - Admin describe and alter configs #138
480 - Validate message format in producer #142
481 - Consumers can detect that a topic was updated and force a rebalance #136
482
483### Changed
484 - Improved stack trace for `KafkaJSNumberOfRetriesExceeded` #123
485 - Enable Kafka v0.11 API by default #141 (Can still be disabled with `allowExperimentalV011=false`)
486 - Replace event emitter Lock #154
487 - Add member assignment to `GROUP_JOIN` instrumentation event #136
488
489## [1.3.1] - 2018-08-20
490### Fixed
491 - Client logger accessor #106
492 - Producer v3 decode format #114
493 - Parsing multiple responses #115
494 - Fetch v4 for partial messages on record batch #116
495
496### Added
497 - Connection instrumentation events #110
498
499## [1.3.0] - 2018-08-06
500### Fixed
501 - Skip unsubscribed topic assignment #86
502 - Refresh metadata when producing to a topic without metadata #87
503 - Discard messages with a lower offset than requested #100
504
505### Added
506 - Add consumer auto commit policies #89
507 - Notify user when setting heartbeat interval to same or higher than session timeout #91
508 - Constantly refresh metadata based on `metadataMaxAge` #94
509 - New instrumentation events #95
510 - Expose loggers #97 #102
511 - Add offset management operations to the admin client #101
512 - Support to record batch compression #103
513 - Handle missing username/password during authentication #104
514
515## [1.2.0] - 2018-07-02
516### Fixed
517 - Make sure authentication handshake remains consistent event when `broker.connect` is called concurrently #81
518
519### Added
520 - Add `producer.sendBatch` to produce to multiple topics at once #82
521 - Experimental support to native Kafka 0.11 (`allowExperimentalV011`) #61 #68 #75 #76 #78
522 - Enabled protocol `fetch` v3
523
524## [1.1.0] - 2018-06-14
525### Added
526 - Support to SASL SCRAM (`scram-sha-256` and `scram-sha-512`) #72
527 - Admin client with support to create topics #73
528
529## [1.0.1] - 2018-05-18
530### Fixed
531 - Prevent crash when re-producing after metadata refresh #62
532
533## [1.0.0] - 2018-05-14
534### Changed
535 - Updated readme
536
537## [0.8.1] - 2018-04-10
538### Fixed
539 - Throw unretriable error for incompatible message format #49
540 - Producer can't reconnect after broker disconnection #48
541
542## [0.8.0] - 2018-04-05
543### Removed
544 - Backwards compatibility with the old member assignment protocol (<= 0.6.x). __v0.7.x__ is the last version with support for both protocols (commit f965e91cf883bff74332e53a8c1d25c2af39e566)
545
546### Fixed
547 - Only retry failed brokers #38
548
549### Changed
550 - Use selected assigner on consumer sync #35
551 - Add validations to consumer subscribe and producer send #41
552
553### Added
554 - Consumer pause and resume #41
555 - Allow `partitionAssigners` to be configured
556 - Allow auto-resolve to be disabled for eachBatch #44
557
558## [0.7.1] - 2018-01-22
559### Fixed
560 - Fix member assignment protocol #33
561
562## [0.7.0] - 2018-01-19
563### Fixed
564 - Fix retry on error for message handlers #30
565
566### Changed
567 - Use decoder offset for validating response length #21
568 - Change log creator to improve interoperability #24
569 - Add support to `KAFKAJS_LOG_LEVEL` #24
570 - Improved assigner protocol #27 #29
571
572### Added
573 - Add seek API to consumer #23
574 - Add experimental describe group to consumer #31
575
576## [0.6.8] - 2017-12-27
577### Fixed
578 - Only use seed brokers to bootstrap consumers (introduced a broker pool abstraction) #19
579 - Don't include the size of the size field when determining if the buffer has enough bytes to read the full response #20
580
581## [0.6.7] - 2017-12-18
582### Fixed
583 - Don't throw KafkaJSOffsetOutOfRange on every protocol error
584
585## [0.6.6] - 2017-12-15
586### Fixed
587 - Fix index out of range errors when decoding partial messages #11
588 - Don't rely on seed broker for finding group coordinator #13
589
590## [0.6.5] - 2017-12-14
591### Fixed
592 - Fix partial message decode #10
593 - Throw not implemented error for Snappy and LZ4 compression #10
594 - Don't crash when setting offsets to default #10
595
596## [0.6.4] - 2017-12-13
597### Added
598 - Add stack trace to connection error logs
599
600### Changed
601 - Skip consumer callback error logs for kafkajs errors
602
603### Fixed
604 - Use the connection timeout callback for socket timeout
605 - Check if still connected before writing to the socket
606
607## [0.6.3] - 2017-12-11
608### Added
609 - Add error logs for user errors in `eachMessage` and `eachBatch`
610
611### Fixed
612 - Recover from rebalance in progress when starting the consumer
613
614## [0.6.2] - 2017-12-11
615### Added
616 - Add `logger: "kafkajs"` to log lines
617
618## [0.6.1] - 2017-12-08
619### Added
620 - Add latest Kafka error codes
621
622### Fixed
623 - Add fallback error for unsupported error codes
624
625## [0.6.0] - 2017-12-07
626### Added
627 - Expose consumer group `isRunning` to `eachBatch`
628 - Add `offsetLag` to consumer batch
629
630## [0.5.0] - 2017-12-04
631### Added
632 - Add ability to subscribe to events (heartbeats and offsets commit) #4
633
634## [0.4.1] - 2017-11-30
635### Changed
636 - Add heartbeat after each message
637 - Update default heartbeat interval to a better value
638
639### Fixed
640 - Accept all consumer properties from create consumer
641
642## [0.4.0] - 2017-11-23
643### Added
644 - Commit previously resolved offsets when `eachBatch` throws an error
645 - Commit previously resolved offsets when `eachMessage` throws an error
646 - Consumer group recover from offset out of range
647
648## [0.3.2] - 2017-11-23
649### Fixed
650 - Stop consuming messages when the consumer group is not running
651
652## [0.3.1] - 2017-11-20
653### Fixed
654 - NPM bundle (add .npmignore)
655 - Fix package.json reference to main file
656
657## [0.3.0] - 2017-11-20
658### Added
659 - Add cluster method to fetch offsets for a list of topics
660 - Add offset resolution to the consumer group
661
662### Changed
663 - Rename protocol Offsets to ListOffsets
664 - Update cluster fetch topics offset to allow different configurations per topic
665 - Create different instances of the cluster for producers and consumers
666
667### Fixed
668 - Fix the use of timestamp in the ListOffsets protocol
669 - Fix create topic script
670 - Prevent unnecessary reconnections on cluster connect
671
672## [0.2.0] - 2017-11-13
673### Added
674 - Expose consumer groups
675 - Message and MessageSet V0 and V1 decoder
676 - Protocol fetch V0, V1, V2 and V3
677 - Protocol find coordinator V0
678 - Protocol join group V0
679 - Protocol sync group V0
680 - Protocol leave group V0
681 - Protocol offsets V0
682 - Protocol offset commit V0, V1 and V2
683 - Protocol offset fetch V1 and V2
684 - Protocol heartbeat V0
685 - Support to compressed message sets in protocol fetch
686 - Add find coordinator group to cluster
687 - Set timestamp for compressed messages
688 - Travis integration
689 - Eslint and prettier
690
691### Changed
692 - Throw an error when cluster findBroker doesn't find a broker
693 - Move `KafkaProtocolError` to errors file
694 - Convert encode, decode and parse to async functions
695 - Update producer to use async compressor
696 - Update fetch to use async decompressor
697 - Create a separate error class for SASL errors
698 - Accepts a list of brokers instead of host and port
699 - Move retry logic out of connection and create namespaces for the logger
700 - Retry when refresh metadata throws leader not available
701
702### Fixed
703 - Fix broker maxWaitTime default value
704 - Take OS differences when asserting gzip results
705 - Clear the connection timeout when the connection ends or fails due to an error
706
707## [0.1.2] - 2017-10-17
708### Added
709 - Expose if the cluster is connected
710
711### Fixed
712 - Reconnect the cluster if it is not connected when producing messages
713 - Throw error if metadata is still not loaded when finding the topic partition
714 - Refresh metadata in case it is not loaded
715 - Make connection throw a retriable error when not connected
716
717## [0.1.1] - 2017-10-16
718### Changed
719 - Only retry retriable errors
720 - Propagate clientId and connectionTimeout to Cluster
721
722### Fixed
723 - Typo when loading the SASL Handshake protocol
724
725## [0.1.0] - 2017-10-15
726### Added
727 - Producer compatible with Kafka 0.10.x
728 - GZIP compression
729 - Plain, SSL and SASL_SSL implementations
730 - Published on Github
731
\No newline at end of file