Skip to content

Releases: kumuluz/kumuluzee-streaming

v1.2.2

18 Jan 07:30
Compare
Choose a tag to compare

This patch release fixes acknowledgements for batch consumers.

Bugs:

  • Fixed ACKs for batch processing

v1.2.1

06 Oct 10:28
Compare
Choose a tag to compare

This minor release adds the option to specify consumer topics in config and lifts some dependency versions.

v1.2.0

28 Jun 09:38
Compare
Choose a tag to compare

We are pleased to announce the release of KumuluzEE Streaming 1.2.0. This release includes ready-to-use JSON Serializer, Deserializer and SerDe. Producers with generic types defined can now also be injected and listeners have been improved with explicit parameter validation.

JSON Serializer, Deserializer and SerDe are useful when you want to transfer objects in JSON format. For example to serialize values of a producer to JSON use the following configuration:

kumuluzee:
  streaming:
    kafka:
      producer:
        bootstrap-servers: localhost:9092 # comma separated list of servers
        key-serializer: org.apache.kafka.common.serialization.StringSerializer # key serializer for records
        value-serializer: com.kumuluz.ee.streaming.kafka.serdes.JsonSerializer # value serializer for records

A producer can then be injected like so:

@Inject
@StreamProducer
private Producer<String, Customer> customerProducer;

Similarly for consumers, note however that type that the record should be deserialized into needs to be defined:

kumuluzee:
  streaming:
    kafka:
      consumer:
        bootstrap-servers: localhost:9092 # comma separated list of servers
        key-deserializer: org.apache.kafka.common.serialization.StringDeserializer # key deserializer for records
        value-deserializer: com.kumuluz.ee.streaming.kafka.serdes.JsonDeserializer # value deserializer for records
        value-deserializer-type: com.kumuluz.ee.app.models.Customer # type of json deserializer

And the listener:

@StreamListener(topics = {"customer-topic"})
public void onMessage(ConsumerRecord<String, Customer> record) {
  // process message ...
}

Injection mechanism have also been improved in this release. As presented earlier, producers can now be injected with generic parameters defined, which improves your codebase and makes development easier. Generic parameters of both producers and consumers are now validated on application startup in order to ensure they match with the configuration. This ensures that your config.yml matches with the defined injection points so that the errors can be discovered right at the application startup.

We have also supported the well-known KumuluzEE extension disabling mechanism. The streaming extension can now be disabled through configuration.

Features:

  • Added JSON Serializer, Deserializer and SerDe
  • Added type-safe Producer injection
  • Added is enabled mechanism

Enhancements

  • Added consumer parameter type validation
  • Cleaned up producer initialization logic

v1.1.0

12 Feb 15:14
Compare
Choose a tag to compare

We are pleased to announce the release of KumuluzEE Streaming 1.1.0. This release includes support for configuration overrides through annotations. Kafka client has also been updated and some bugs have been fixed.

Kafka configuration properties can now be overridden by using the @ConfigurationOverride annotation. For example:

@Inject
@StreamProducer(configOverrides = {@ConfigurationOverride(key = "bootstrap-servers", value = "localhost:9092")})
private Producer orderProducer;

Overrides are supported in @StreamProducer, @StreamListener and @StreamProcessor annotations.

A bug has been fixed that acknowledged single messages incorrectly. We have also enabled injection of producers in @ApplicationScoped beans.

Features:

  • Added support for configuration overrides through annotations

Bugs:

  • Fixed single message acknowledgements
  • Enabled injection of Producer in @ApplicationScoped beans

v1.0.0

12 Oct 05:46
Compare
Choose a tag to compare

We're happy to announce the KumuluzEE Event Streaming extension v1.0.0 for the KumuluzEE framework.

The extension enables developers to easily integrate their microservices with the Apache Kafka platform, produce and consume events, and build stream processors. All the features can be easily implemented with provided annotations.

We're excited to get the extension into your hands!