This version of Hermes is safe and backward compatible, so no additional actions are required to be performed on kafka brokers.
(1299) Add new meaningful metrics to MetricsMessageDeliveryListener
🆕 New hermes-client metrics take into account also application level errors which are represented by http status codes.
Topic.publish.finally.success:Message has been accepted by Hermes
topic.publish.finally.failure:Message has been rejected by Hermes or there was transport level issue.
topic.publish.failure:Number of failures including retries.
topic.publish.attempts:Number of publish attempt. Does not include retries.
topic.publish.retry.success:Number of successful publications after one or more retry.
topic.publish.retry.failure:Number of failures after retries have been exhausted.
topic.publish.retry.attempt:Number of publications where retry was involved.
(1301) partition-key HTTP header
➕ Added ability to publish messages to the specific partition
0️⃣ (1310) hermes-frontend change default response http status
This improvement is related to this enhancement. 0️⃣ Now hermes-frontend changes default response status from 200 to 500 for every exchange.
(1304) Json validation fix in debugging filters in hermes-console
(1296) Consistency checking in hermes-console
From now on Hermes operator can check consistency between multiple Hermes Zookeeper clusters via Hermes-console. Inconsistency can occur when one Zookeeper cluster is down for a while.
(1294) Hermes frontend occasionally returns incorrect status 200
✅ In Hermes-frontend there are only two status codes representing success, these are 201 and 202. Unfortunately, Hermes-frontend occasionally returned 200. 0️⃣ It’s because it’s built on Undertow http server which returns 200 http status code as default one when response isn’t set. Thanks this enhancement instead of 200, 500 is returned. 500 means error and can be retried by a client.
🔧 (1256) Readonly mode for Kafka topics configuration
(1279) Button for copying schema of a topic
(1283) Changed order of operations on topic creation
⚡️ (1270) A topic change updates its all cached schemas
🔊 (1271) Audit logs for unsuccessful topic and subscription operations
(1273) Topic removal is forbidden if the topic contains any subscription
🚚 (1274) Moved filtering to hermes-common
(1275) Added message filters debugger
⬇️ (1276) Downgraded kafka to 2.1.1
Kafka dependency needs to be kept in this version due to bug that occurs when using kafka dependency in versions 2.2.0 - 2.3.1 and brokers in versions before 2.4.0 (https://issues.apache.org/jira/browse/KAFKA-9212).
Ideally, we would bump kafka dependency up to 2.3.2, which according to the issue above is no longer affected by this bug, but it's nowhere to be found :(. Since 2.4.0 version bumps transitive dependency for a zookeeper client library, it would introduce further incompatibility if Hermes Zookeeper is in lower version than Zookeeper used in Kafka, as these two are independent of each other.
This needs to be revisited after Hermes is completely independent of kafka library, as no transitive dependency 🆓 to zookeeper will be present (kafka-clients library is free of transitive zookeeper dependency).
🛠 (1268) Fixed http headers now have a dedicated pane in console