All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Prevent crash when re-producing after metadata refresh #62
- Updated readme
- Throw unretriable error for incompatible message format #49
- Producer can't reconnect after broker disconnection #48
- 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)
- Only retry failed brokers #38
- Use selected assigner on consumer sync #35
- Add validations to consumer subscribe and producer send #41
- Consumer pause and resume #41
- Allow
partitionAssigners
to be configured - Allow auto-resolve to be disabled for eachBatch #44
- Fix member assignment protocol #33
- Fix retry on error for message handlers #30
- Use decoder offset for validating response length #21
- Change log creator to improve interoperability #24
- Add support to
KAFKAJS_LOG_LEVEL
#24 - Improved assigner protocol #27 #29
- Add seek API to consumer #23
- Add experimental describe group to consumer #31
- Only use seed brokers to bootstrap consumers (introduced a broker pool abstraction) #19
- Don't include the size of the size field when determining if the buffer has enough bytes to read the full response #20
- Don't throw KafkaJSOffsetOutOfRange on every protocol error
- Fix index out of range errors when decoding partial messages #11
- Don't rely on seed broker for finding group coordinator #13
- Fix partial message decode #10
- Throw not implemented error for Snappy and LZ4 compression #10
- Don't crash when setting offsets to default #10
- Add stack trace to connection error logs
- Skip consumer callback error logs for kafkajs errors
- Use the connection timeout callback for socket timeout
- Check if still connected before writing to the socket
- Add error logs for user errors in
eachMessage
andeachBatch
- Recover from rebalance in progress when starting the consumer
- Add
logger: "kafkajs"
to log lines
- Add latest Kafka error codes
- Add fallback error for unsupported error codes
- Expose consumer group
isRunning
toeachBatch
- Add
offsetLag
to consumer batch
- Add ability to subscribe to events (heartbeats and offsets commit) #4
- Add heartbeat after each message
- Update default heartbeat interval to a better value
- Accept all consumer properties from create consumer
- Commit previously resolved offsets when
eachBatch
throws an error - Commit previously resolved offsets when
eachMessage
throws an error - Consumer group recover from offset out of range
- Stop consuming messages when the consumer group is not running
- NPM bundle (add .npmignore)
- Fix package.json reference to main file
- Add cluster method to fetch offsets for a list of topics
- Add offset resolution to the consumer group
- Rename protocol Offsets to ListOffsets
- Update cluster fetch topics offset to allow different configurations per topic
- Create different instances of the cluster for producers and consumers
- Fix the use of timestamp in the ListOffsets protocol
- Fix create topic script
- Prevent unnecessary reconnections on cluster connect
- Expose consumer groups
- Message and MessageSet V0 and V1 decoder
- Protocol fetch V0, V1, V2 and V3
- Protocol find coordinator V0
- Protocol join group V0
- Protocol sync group V0
- Protocol leave group V0
- Protocol offsets V0
- Protocol offset commit V0, V1 and V2
- Protocol offset fetch V1 and V2
- Protocol heartbeat V0
- Support to compressed message sets in protocol fetch
- Add find coordinator group to cluster
- Set timestamp for compressed messages
- Travis integration
- Eslint and prettier
- Throw an error when cluster findBroker doesn't find a broker
- Move
KafkaProtocolError
to errors file - Convert encode, decode and parse to async functions
- Update producer to use async compressor
- Update fetch to use async decompressor
- Create a separate error class for SASL errors
- Accepts a list of brokers instead of host and port
- Move retry logic out of connection and create namespaces for the logger
- Retry when refresh metadata throws leader not available
- Fix broker maxWaitTime default value
- Take OS differences when asserting gzip results
- Clear the connection timeout when the connection ends or fails due to an error
- Expose if the cluster is connected
- Reconnect the cluster if it is not connected when producing messages
- Throw error if metadata is still not loaded when finding the topic partition
- Refresh metadata in case it is not loaded
- Make connection throw a retriable error when not connected
- Only retry retriable errors
- Propagate clientId and connectionTimeout to Cluster
- Typo when loading the SASL Handshake protocol
- Producer compatible with Kafka 0.10.x
- GZIP compression
- Plain, SSL and SASL_SSL implementations
- Published on Github