1 | # Changelog
|
2 |
|
3 | All notable changes to this project will be documented in this file.
|
4 |
|
5 | The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
6 | and 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 |
|
45 | This 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 |