Skip to content

IBM Message Hub Toolkit v3.0.0

Compare
Choose a tag to compare
released this 02 Dec 12:02
· 44 commits to develop since this release
1ea66f5

What's new in this release and what has changed

  • This toolkit is based on the Kafka toolkit 3.0.0
  • The included Kafka client has been upgraded from version 2.2.1 to 2.3.1.
  • The schema of the output port of the MessageHubProducer operator supports optional types for the error description.
  • When in autonomous region, the optional input port of the MessageHubConsumer operator can be used to change the topic subscription, not only the partition assignment. To create JSON for changing topic subscriptions, the toolkit contains new SPL functions. For consistent region, this new function is not available.
  • The guaranteeOrdering parameter now enables the idempotent producer when set to true, which allows a higher throughput by allowing more in-flight requests per connection.
  • The MessageHubConsumer operator now enables and benefits from group management when the user does not specify a group identifier, i.e. when the operator generates a group identifier.
  • Checkpoint reset of the MessageHubConsumer is optimized in consistent region when the consumer operator is the only group member.
  • The MessageHubConsumer operator now uses read_committed as the default isolation.level configuration unless the user has specified a different value. In read_committed mode, the consumer will read only those transactional messages which have been successfully committed. Messages of aborted transactions are now skipped. The consumer will continue to read non-transactional messages as before.

Deprecated features

  • The use of the input control port has been deprecated when the MessageHubConsumer is used in a consistent region.

Removed features

The function, which has been deprecated in toolkit version 2.x has been removed in this toolkit version. The removed function contains following items:

  • The messageHubCredentialsFile operator parameter has been removed from all operators. Please use the credentialsFile parameter instead.
  • The default filename etc/messagehub.json for specifying Event Streams service credentials is not read any more. Please use etc/eventstreams.json when you want to use a default filename for service credentials.
  • The default name messagehub for an application configuration is not read any more. Please use eventstreams as name for the application configuration when you want to use a default.
  • The property name messagehub.creds within an application configuration is not read any more. Please name the property for the Event Streams credentials eventstreams.creds.

Changes in behaviour

MessageHubConsumer operator

When the user does not specify a group identifier, and does not specify partitions to consume (via the partition parameter), the MessageHubConsumer now subscribes to the given topics and benefits from group management, for example it automatically gets assigned new partitions when the number of partitions of the subscribed topics change. In previous versions, the MessageHubConsumer operator used to self-assign all available topic partitions of the topics at startup, and the partition assignment of the operator never changed during runtime.

With default configuration, the MessageHubConsumer operator reads only committed messages when transactional messages have been produced. Messages of aborted transactions are now skipped. To revert to the old behavior, add the consumer configuration

isolation.level=read_uncommitted

Incompatible changes

  • The toolkit requires at minimum Streams version 4.3. It is incompatible with older versions of IBM Streams.
  • When the MessageHubConsumer operator is configured with input port, the topic, pattern, partition, and startPosition parameters used to be ignored in previous versions. Now an SPL compiler error is raised when one of these parameters is used together with the input port.
  • The deprecated function has been removed.

Bug fixes

  • #98 (operator model)
  • #99 (documentation)

The SPL documentation can be found at https://ibmstreams.github.io/streamsx.messagehub/docs/user/SPLDoc/