Releases: dbmdz/flusswerk
Releases · dbmdz/flusswerk
v7.0.1
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)
andProcessReport.reportComplexFailedAfterMaxRetries(Message message, RetryProcessingException e)
.
v7.0.0
Fixed
- Automatically recover from channel-level exceptions. This involves a breaking change in the constructor of
FlusswerkConsumer
, which now requires aRabbitClient
instead of aChannel
.
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
andSilentProcessReport
have been removed. Users who would like to customize their process report can subclass DefaultProcessReport or implement the ProcessReport interface.
v6.0.1
v6.0.0
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 aDuration
object instead oflong
(#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
v5.1.0
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
andflusswerk_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
andflusswerk_execution_time
have been deprecated since they don't follow Prometheus best practices. - The logging field
duration_ms
is deprecated since a corresponding fieldduration
exists and will be removed in the future. Logging and metrics will strictly use SI base units where possible.
Fixed
v5.0.3
v5.0.2
v5.0.1
v5.0.0
- Flusswerk connections are now shown in RabbitMQ management UI
- structured logging now automatically contains fields
duration
andduration_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 ofEnvelope.created
which is now of typeInstant
. - Constructor of FlusswerkApplication now takes
Optional<Engine>
as an argument (call assuper(Optional.of(engine));
). - Options for centralized locking using Redis have been removed