Waterstream Change Log¶
1.4.X¶
1.4.17¶
- Fix cross-node session loading issues 
1.4.12¶
- Limit maximal lifetime of the JWT token 
1.4.11¶
- Allow repeated rewinds of the same Kafka topic 
- Limit maximal rewind depth with - REWIND_MAX_DEPTH_SECONDSparameters (default is 60 days)
1.4.10¶
- (Experimental) Start subscription from the specified timestamp in the past (a.k.a “rewind”) 
1.4.9¶
- JWT authentication can use the certificate for validating the signature, no need to extract the public key now 
- Bugfix: correct unsubscribe when there’s a lot of MQTT-Kafka topics mapping 
1.4.8¶
- Optimize historical messages reading 
- JWT improvement: sub claim pre-processing before converting to the username. Groups extraction. 
1.4.7¶
- Give JWT authentication higher priority over plaintext authentication to let them work together 
1.4.6¶
- SSL: do not request client certificate if client SSL authetication is disabled (workaround for Chrome WSS issue https://bugs.chromium.org/p/chromium/issues/detail?id=329884) 
1.4.4¶
- Kafka to MQTT topic mapping - added - ignoreKafkaHeadersparameter. Now it’s possible to ignore Kafka message header- MqttTopicfor the selected mappings.
1.4.1¶
- Metrics for total traffic sent/received to/from MQTT client 
- Metrics for total traffic produced/consumed into/from Kafka topics 
- More accurate check for the per-client packet size limit. Thanks to Stefano Da Roit (stefano.daroit@gmail.com) for reporting it. 
- Broker Keep Alive feature of MQTT v5 implementation (https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901094). Thanks to Stefano Da Roit (stefano.daroit@gmail.com) for pointing it out. 
- Kafka producer’s - max.request.sizechanges to be sufficient for MQTT message size specified by- MQTT_MAX_MESSAGE_SIZE. Thanks to Stefano Da Roit (stefano.daroit@gmail.com) for reporting.
- Improve shared subscription pattern validation. Thanks to Stefano Da Roit (stefano.daroit@gmail.com) for reporting. 
1.4.0¶
- New approach for mapping Kafka topic to MQTT topic. See MQTT to Kafka (topic + key) mapping rules (new) 
1.3.X¶
1.3.27¶
- JWT token additional claims allow to match custom placeholders in the MQTT topics. See JWT custom claims 
1.3.26¶
- Small optimizations in Kafka communication 
- Support reading from the topics replicated across Kafka clusters with - KAFKA_MESSAGES_TOPICS_REPLICA_PREFIXESand- KAFKA_MESSAGES_TOPICS_REPLICA_SUFFIXES
1.3.25¶
- Improve stability in situations when many slow MQTT clients subscribed with QoS 0 and can’t keep up with high incoming Kafka traffic 
- Update the libraries 
1.3.24¶
- Support of - KAFKA_MESSAGES_ALLOWED_TOPICS_REGEXwhich can limit Kafka topics in- KAFKA_MESSAGES_TOPICS_PATTERNS, thus allowing more flexible patterns.
1.3.22¶
- JWT authentication support 
1.3.21¶
- Kafka message key customization support 
1.3.18¶
- Kafka topic templates in Kafka-MQTT topic mapping which allows less verbose topic mapping. See MQTT to Kafka topic mapping (deprecated) for the details 
1.3.17¶
- Fix SSL client certificate issuer check errors 
1.3.16¶
- AWS Metering Service integration 
1.3.15¶
- Optimize SUBSCRIBE latency 
- Optimize historical messages processing 
1.3.14¶
- Changed default Kafka publishing settings linger.ms and batch.size to optimize for throughput 
- Ability to specify max.block.ms and buffer.memory for Kafka producer 
- Customize HTTP port of the Devbox. Change default from 80 to 8080 
- Docker repository name changed from simplematter/waterstream-kafka-minified to simplematter/waterstream-kafka, from simplematter/waterstream-kafka-arm64v8-minified to simplematter/waterstream-kafka-arm64v8, docker repositories became public (but still needing the license to run). 
1.3.13¶
- Optimize the session load time 
1.3.12¶
- Ability to specify replication.factor for Kafka Streams 
1.3.11¶
- Docker images logs customization with WATERSTREAM_LOGBACK_CONFIG 
- Fix MQTT v 5.0 error code for invalid client ID 
1.3.10¶
- Devbox Docker image which includes ZooKeeper, Kafka, Waterstream and MQTT Board 
- Safer base image for Docker images: openjdk:16-oraclelinux8 
1.3.9¶
- Optimize session state persistence 
1.3.8¶
- Bugfix: MQTT v 3.1.1 bridge topic subscription 
1.3.7¶
- Bugfix: if AUTHENTICATION_METHOD_CLIENT_SSL_CERT_ENABLED is true and AUTHENTICATION_REQUIRED is false client SSL certificate is optional now 
- Add Prometheus metric mqtt_proxy_publish_to_kafka_backlog to track the lag between incoming MQTT messages and publishing to Kafka 
1.3.5¶
- Ability to specify inline license data in - WATERSTREAM_LICENSE_DATAenvironment variable.
1.3.4¶
- Default value for KAFKA_STREAMS_APP_SERVER_HOST is now taken from InetAddress.getLocalHost().getCanonicalHostName() instead of disabling streams app server if it’s not specified. 
1.3.3¶
- MQTT v5 - shared subscriptions 
- MQTT v5 - subscription IDs 
1.3.2¶
- MQTT v5 - Last Will delay 
- MQTT v5 - topic aliases 
1.3.1¶
Bugfix:
- Deduplicate retained messages if topic patterns in SUBSCRIBE packet match the topic multiple times 
- Resolve environment variables in the bridge config file 
- MQTT5: support multiple user properties with the same key 
1.3.0¶
- MQTT v5 core features support - see Supported features. 
1.2.X¶
1.2.1¶
- MQTT-Kafka topic mapping by prefix. In particular, it simplifies reading ksqlDB results back into MQTT. See MQTT to Kafka topic mapping (deprecated) for the details