Skip to content

Releases: dbmdz/flusswerk

v7.0.1

30 Jul 09:54
961d70c
Compare
Choose a tag to compare

Fixed

  • Flusswerk Logger can handle function calls with the format String as sole argument.

Changed

  • Reporting of partial retries can now be customized by overriding ProcessReport.reportComplexRetry(Message message, RetryProcessingException e) and ProcessReport.reportComplexFailedAfterMaxRetries(Message message, RetryProcessingException e).

v7.0.0

15 Mar 10:02
b1665fb
Compare
Choose a tag to compare

Fixed

  • Automatically recover from channel-level exceptions. This involves a breaking change in the constructor of FlusswerkConsumer, which now requires a RabbitClient instead of a Channel.

Changed

  • Outgoing routes may now include a list of topics instead of a single topic. A Route can be used to send a message to several topics at once.
  • The DefaultFlusswerkReport logs tracing information.

Removed

  • FlusswerkProcessReport, StructuredProcessReport and SilentProcessReport have been removed. Users who would like to customize their process report can subclass DefaultProcessReport or implement the ProcessReport interface.

v6.0.1

06 Dec 09:51
fd6f240
Compare
Choose a tag to compare

Fixed

  • Remove SNAPSHOT version from pom

v6.0.0

27 Sep 09:20
Compare
Choose a tag to compare

Fixed

  • The Counter flusswerk_messages_seconds now records the processing time in seconds (#444)
  • Flusswerk default metrics names now follow best practices (#420)

Changed

  • The DefaultProcessReport now supports common defaults and sensible structured fields so that most applications don't need to implement their own ProcessReport anymore (DefaultProcessReport)
  • Migrated to SpringBoot 3 / JDK17
  • flowInfo.duration() returns a Duration object instead of long (#444)
  • Support for partial retries: When a workload is split in smaller chunks, then part of these can be successful and part can be retried (e.g. when sending all images of a book individually to cloud services). See RetryProcessingException.send() for details.
  • Flusswerk can now deserialize messages without @JsonName annotations.

v5.1.1

15 Nov 11:11
05c8894
Compare
Choose a tag to compare

Fixed

  • Rely on automatic connection recovery instead of managing it manually (#410)
  • Flusswerk metrics separated from application metrics (#405)
  • Tracing information added to messages send with SkipProcessingException (#404)

v5.1.0

18 May 08:12
Compare
Choose a tag to compare

Added

  • Message processing can now be skipped by throwing a SkipProcessingException. Log messages now have a field status to indicate this. (#355)
  • New framework metrics flusswerk_messages_total and flusswerk_messages_seconds (Counter). The prefix is independent from the application prefix since the metric is the same for all Flusswerk-based applications. (#381).
  • New framework metrics flusswerk_workers (Gauge). The prefix is independent from the application prefix since the metric is the same for all Flusswerk-based applications. (#381).
  • Flusswerk applications now can send raw messages: Topic.sendRaw(byte[] message) (#381).

Changed

  • Autoformatting now uses com.spotify:fmt-maven-plugin and works with JDK17.

Deprecated

  • The framework metrics flusswerk_processed_times and flusswerk_execution_time have been deprecated since they don't follow Prometheus best practices.
  • The logging field duration_ms is deprecated since a corresponding field duration exists and will be removed in the future. Logging and metrics will strictly use SI base units where possible.

Fixed

  • Tracing information got lost when the application threw certain exceptions (#380).
  • The logged values of duration and duration_ms where switched (#345).

v5.0.3

02 Dec 14:16
Compare
Choose a tag to compare

This release fixes two issues for for duration and duration_ms:

  • mixed up values
  • wrong conversion from nanoseconds

v5.0.2

08 Nov 15:07
Compare
Choose a tag to compare

This release corrects switched logging values for duration and duration_ms. It also removes exponential notation for these values so log parsers do not have to support this notation.

v5.0.1

22 Oct 15:10
85ac8f8
Compare
Choose a tag to compare
  • Ignore the envelope field timestamp from earlier versions instead of throwing an exception.
  • Release worker after failure to deserialize a message.
  • Add tracing information for messages that could not be deserialized.

v5.0.0

14 Oct 14:22
Compare
Choose a tag to compare
  • Flusswerk connections are now shown in RabbitMQ management UI
  • structured logging now automatically contains fields duration and duration_ms that report the time your app spent on processing a certain message in seconds or milliseconds.
  • The deprecated tracing_id has been removed
  • The deprecated Envelope.timestamp has been removed in favor of Envelope.created which is now of type Instant.
  • Constructor of FlusswerkApplication now takes Optional<Engine> as an argument (call as super(Optional.of(engine));).
  • Options for centralized locking using Redis have been removed