kafka-streams
Version:
kafka-streams for Node.js
209 lines (140 loc) • 7.34 kB
Markdown
# kafka-streams CHANGELOG
## 2020-02-24, Version 5.0.0
* upgraded dependencies
* **BREAKING** please note that the latest sinek (kafka-client) will not install the
native kafka client dependency `node-rdkafka` anymore. In case you are using the
native client with kafka-streams or kafka-connect you have to install it manually (see below).
### A note on native mode
If you are using the native mode (`config: { noptions: {} }`).
You will have to manually install `node-rdkafka` alongside kafka-streams.
(This requires a Node.js version between 9 and 12 and will not work with Node.js >= 13, last tested with 12.16.1)
On Mac OS High Sierra / Mojave:
`CPPFLAGS=-I/usr/local/opt/openssl/include LDFLAGS=-L/usr/local/opt/openssl/lib yarn add --frozen-lockfile node-rdkafka@2.7.4`
Otherwise:
`yarn add --frozen-lockfile node-rdkafka@2.7.4`
(Please also note: Doing this with npm does not work, it will remove your deps, `npm i -g yarn`)
## 2019-07-04, Version 4.12.0
* upgraded dependencies
* fixed issue #91
* added topic extractor example
## 2019-05-16, Version 4.11.0
* added continueWith dsl operation
## 2019-05-13, Version 4.10.0
* fixed typo that broke window functionality
* correctly handling rejection of .to() promise call
* correctly handling produce errors (make sure to sub `kafkaStreams.on("error", (error) => {...});`)
* `KStream.branch([...])` now returns stream clones that consist of deeply cloned events
* `KStream.clone(cloneObjects = false, cloneDeep = false)` now offers optional parameters to clone the stream events,
otherwise mutating the origin stream will alter the cloned stream's objects
* hardened the StreamDSL JSON convenience methods
* other small refactorings
## 2019-05-07, Version 4.9.0
* upgraded dependencies
* fixed bug where kstream merge was not passing kafkaStreams reference
* fixed code formatting
* fixed word-count example
* fixed produceToTopic example
* fixed consumeOneProduceTwo example
* adjusted consumeFromTopic example
* ported most-subject back to 5.3.0 to fix major window bug
* fixed window example
## 2019-09-01, Version 4.8.0
* fixed bug in type declarations
* fixed typo in quick-start docu
* fixed bug in window (createSubject; most-subject switched from async to create..)
* upgraded dependencies (newest native client)
## 2018-09-10, Version 4.7.0
* now referencing new kafka client type (advanced configs) declarations
* upgrade dependencies (kafka clients)
## 2018-09-10, Version 4.6.5
* again fix on type declaration for .to() **sorry**
## 2018-08-10, Version 4.6.4
* removed ncu as dependency, should not have been added after all
* alloing "auto" as partition count param for .to() call
* upgraded sinek from 6.22.2 to 6.22.3
## 2018-21-09, Version 4.6.3
* made topic optional in ts definition for .to() call
## 2018-20-09, Version 4.6.2
* shipping fix for a bug in node-sinek
## 2018-11-09, Version 4.6.1
* added return type for .to() call in ts definition
## 2018-10-09, Version 4.6.0
* added KStream.branch() etl method
* added typescript declarations
* updated dependencies:
sinek → ~6.22.0
proxyquire → ~2.1.0
bluebird → ~3.5.2
uuid → ~3.3.2
## 2018-27-06, Version 4.5.0
* updated depdendencies
* new sinek version brings additional metadata methods
## 2018-15-06, Version 4.4.0
* updated dependencies
* new sinek version brings latest node-rdkafka and kafka-node as well as
message value and key buffer encoding for javascript client
## 2018-31-05, Version 4.3.0
* added concatMap dsl method
* added getNewMostFrom methhod
* added example consomeOneProduceTwo
## 2018-18-05, Version 4.2.0
* added new DSL function most.awaitPromises
## 2018-23-04, Version 4.1.0
* added ability to process a different Kafka configuration for producing via `.to()` if the first parameter
is an object. Pass an object to `.to({outputKafkaConfig: {}})` (in case you are not starting a consumer with your stream)
* added ability to process a different Kafka configuration for producing via `.start()`. Pass an object to
`.start({outputKafkaConfig: {}})` (works for KStream and KTable) in case you are starting a consumer and producer on the
same stream.
## 2018-23-04, Version 4.0.2
* fixed typo in messageProduceHandler that caused errors during on demand message production
* now passing version in messageProduceHandler
## 2018-23-04, Version 4.0.1
* fixed empty produce topic from starting consumer even if not needed
## 2018-20-04, Version 4.0.0
**ADDITIONAL FEATURES**:
- KafkaStreams inherits event emitter ("closed" event)
- you can now pass multiple topics to the .getKStream() function
- there is now a .from("topic"|["topics"]) dsl function to subscribe
- mapJSONConvenience, mapStringValueToJSONObject, mapBufferValueToString, mapBufferKeyToString
- wrapAsKafkaValue
- you can now pass batchOptions for the native consumer to via config.batchOptions
- passing batchOptions enforces backpressure mode
- added setProduceHandler and createAndSetProduceHandler methods to register for message delivery
**BREAKING CHANGES**:
- raw events are no streamed with key and value buffers
- mapParse has been renamed to mapJSONParse
- mapWrapKafkaPayload has been renamed to mapWrapKafkaValue
- passing no config object to KafkaStreams will now throw
- (internal) NativeKafka .send() does not handle array of messages anymore
- (internal) NativeKafka produce method params have been altered slightly
- stream events that run through .to will now be checked if they have a message schema,
if they do, their fields (key, value, partition, ..) will be remapped to the produce config
**Other**:
* dropped old crappy/flakey int tests
* added new e2e and unit tests
* all produce activies have been bundled in messageProduceHandle
* folder structure has been refactored
* updated documentation
* added kafka message schemes documentation
## 2017-10-03, Version 3.0.0
* Updated dependencies
* Ships with new sinek version that brings a second kafka-client via librdkafka
* split KafkaClient into JSKafkaClient and NativeKafkaClient based on sineks two clients
* KafkaFactory (used by KafkaStreams) will switch between clients based on config parameters see docs/native.md
* When using the native client: SSL, SASL and Kerberos are available see docs/ssl-sasl.md
* With the help of the native client performance of the library is increased by a magnitude
* **BREAKING CHANGE** `kafkaStreams.closeAll()` returns a promise and awaits the closing of all
kafka clients as well as storages
* the `/kafka-setup` has been updated with an SSL example
* documentation has been updated
## 2017-08-12, Version 2.3.0
* Minor fixes
* Updated depdendencies
## 2017-07-12, Version 2.1.0
#### (sinek update) Kafka Client is now able to connect directly to the Kafka Broker
* Updated all dependencies
* Clients can now omit Zookeeper and connect directly to a Broker by omitting zkConStr and passing kafkaHost in the config
#### Producer/Consumer Key Changes [#704](https://github.com/SOHU-Co/kafka-node/pull/704)
* **BREAKING CHANGE** The `key` is decoded as a `string` by default. Previously was a `Buffer`. The preferred encoding for the key can be defined by the `keyEncoding` option on any of the consumers and will fallback to `encoding` if omitted
## 2017-07-11, Version 1.32.0
* First entry in CHANGELOG.md