All Versions
135
Latest Version
Avg Release Cycle
18 days
Latest Release
-

Changelog History
Page 14

  • v0.9.2 Changes

    ๐Ÿ”‹ Features

    ๐Ÿ”ง (#612) Added explicit CORS allowed domain configuration option

    โœจ Enhancements

    โšก๏ธ (#619) Updated kafka-producer configuration

    โฑ In the current version of kafka-producer (0.10.1) request.timeout.ms parameter is also used as a timeout for dropping batches from internal accumulator. โฑ Therefore, it is better to increase this timeout to very high value, because when kafka is unreachable we don't want to drop messages but buffer them in accumulator until is full. This behavior will change in future version of kafka-producer.

    More information on this issue can be found in kafka-users group archives

    ๐Ÿ›  Bugfixes

    • (#614) JSON-to-Avro dry run fix for Hermes-incompatible schemas
    • (#621) Schema-related frontend HTTP responses fix
    • (#622) Fixing occasional null pointer when reading consumer assignments
    • (#624) Catching unchecked exceptions in schema-versions cache that previously weren't logged
    • ๐Ÿ”€ (#616) Fixing bug with sync commit after each filtered message
  • v0.9.1 Changes

    This patch version was released mostly because of Schema version cache fix #608

    Beside that:

    • documentation about schema repository was updated
    • integration tests should be more reliable
  • v0.9.0 Changes

    ๐Ÿš€ This release introduces Kafka 0.10 producer/consumer API and is no longer compatible with Kafka 0.8.x and 0.9.x deployments.

    ๐Ÿ”‹ Features

    (#558) Use Kafka 0.10 producer/consumer API

    This change breaks backwards compatibility - Hermes will not run on 0.8.x, 0.9.x Kafka clusters

    Hermes uses Kafka 0.10 APIs. The change is not big for producers in Frontend module, but it rearranged whole Consumers module.

    ๐Ÿ—„ The benefits of moving to Kafka 0.10 (except from leaving the deprecated APIs behind) are:

    • โฌ‡ decreased number of active threads: in cluster with ~600 subscriptions number of threads decreased from ~4400 to ~700
    • โฌ‡ decreased memory consumption: same cluster, memory usage dropped by 10-20%
    • โฌ‡ decreased CPU consumption: same cluster, day-to-day CPU consumption dropped by ~10%
    • greatly decreased shutdown time

    The change is transparent for the end users.

    โฌ†๏ธ Upgrading note

    โฌ†๏ธ Before upgrading, make sure that offsets are committed and stored in Kafka (option: kafka.consumer.dual.commit.enabled is set to true or 0๏ธโƒฃ kafka.consumer.offsets.storage is set to kafka (default) in Consumers module).

    โฌ†๏ธ When upgrading, all Consumers should be stopped at once and started with new version.

    (593) Confluent Schema Registry integration

    ๐Ÿ’ฅ Breaking change: Support for storing and validating JSON schemas has been removed

    Hermes be integrated with Confluent Schema Registry to store and read Avro schemas. We kept existing integration with schemarepo.org repository. To switch between implementations, use schema.repository.type option:

    • schema_repo for "old" schemarepo.org
    • schema_registry for Confluent Schema Registry

    โœจ Enhancements

  • v0.8.12 Changes

    ๐Ÿ”‹ Features

    (#566) Auditing management operations

    0๏ธโƒฃ All operations in Management can be auditable. By default this option is disabled, but can be enabled using:

    audit.enabled = true
    

    ๐Ÿ“š By default changes are sent to logs, but own implementation can be provided. Reed more in auditing documentation.

    (#481) Delay between retries in Hermes Client

    It is now possible to specify delay between consecutive retries of sending message.

    HermesClient client = HermesClientBuilder.hermesClient(...)
        .withRetries(3)
        .withRetrySleep(100, 10_000)
    

    The delay can rise exponentially in specified range (100ms to 10 seconds in example above).

    ๐Ÿ› Bugs

    (577) Consumer won't stop if there are messages in send queue

    (579) Wrong path to lag stats in Hermes Console

  • v0.8.11 Changes

    ๐Ÿ”‹ Features

    ๐Ÿ‘ (#359) OAuth2 support [incubating]

    ๐Ÿ‘ Hermes supports Resource Owner Password Credential Grant scenario. It is possible to declare multiple OAuth providers in Hermes, along with their credentials. Each subscription can choose a provider and defines own user & password.

    โœจ Enhancements

    (#556) Added source and target hostname information to tracking

    Tracking information now contains additional fields: hostname and remote_hostname, which are:

    • on Frontend side:
      • hostname: hostname of Frontend host that received the message
      • remote_hostname: IP address of events producer (who published)
    • on Consumers side:
      • hostname: hostname of Consumer host that was handling the message
      • remote_hostname: IP address/hostname of host that acknowledged/rejected message (who received)

    (#561) Consumers process model improvements

    Improving the stability of new internal Consumers process model by adding consumer process graceful shutdown ๐Ÿšฆ and filtering unwatned signals (i.e. sequential START & STOP) which might cause instability.

    For monitoring purposes two new metrics (counters) were created in Consumers that compare the assignments state vs the actual consumers running:

    • consumers-workload.monitor.missing.count - how many processes are missing compared to assigned amount
    • consumers-workload.monitor.oversubscribed.count - how many processes exist although they should not, as this instance of Consumers is not assigned to run them

    ๐Ÿ”Š In addition to metrics, warning logs are emitted with details about subscription names missing/oversubscribed.

    (#563) Apache Curator 2.11.0 and Guava 19.0