Releases: dbmdz/flusswerk
v5.0.1
v5.0.0
- Flusswerk connections are now shown in RabbitMQ management UI
- structured logging now automatically contains fields
durationandduration_msthat report the time your app spent on processing a certain message in seconds or milliseconds. - The deprecated
tracing_idhas been removed - The deprecated
Envelope.timestamphas been removed in favor ofEnvelope.createdwhich 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
Release 4.2.0
This release introduces improved support for structured logging.
4.1.0
v4.0.1
v4.0.0
Breaking Changes
- Any Flusswerk application uses now Spring Boot and needs beans for
[FlowSpec][FlowSpec] (defining the processing) and
[IncomingMessageType][IncomingMessageType]. - The package names changed from
de.digitalcollections.flusswerk.engineto
com.github.dbmdz.framework. - Messages don't have a default
idfield anymore - that's data the app is responsible for (if needed) FlowBuilderAPI has been simplified a lot
New Features
Logging und monitoring:
- Automatic metrics collection without explicit configuration
- Improved support for custom metrics collection
- Flusswerk automatically propagates tracing ids if present (you can override those at any time)
- Automatic structured logging with
idandtracingIdif present - Improved DefaultProcessReport: Now less verbose and more to the point
Process synchronisation:
- Centralized locking via Redis
Data Processing
- Improved and simplified
FlowBuilder - Support for data processing as
Message → Messageinstead of Reader, Transformer and Writer for small apps - Harnessing the power of Spring Boot makes configuration of Workflow apps easier than ever
v3.2.0
Typing for generic classes
For most classes, a class reference can be used in the builder interfaces, like String.class. As this does not work with generics, we introduced new type references. The following lines are equivalent
FlowBuilder.with(String.class, String.class, String.class)
FlowBuilder.with(new Type<String>(), new Type<String>(), new Type<String>())While the class reference is more concise, the type variant allows for generics:
FlowBuilder.with(new Type<List<String>>(), ...)Default Metrics collection in Spring Boot Starter
If you do not need to collect custom processing metrics, the Spring Boot Starter has metrics collection out of the box. The Metrics class there can be used a base class for your own metrics collection, too.
Experimental Flow Builder
This release introduces an ExperimentalFlowBuilder with a strong focus on usability that will become default in Flusswerk 4.
v3.1.1
v3.1.0
Version 3.1.0 introduces
-
Support for Spring Boot:
- a Spring Boot Starter for autoconfiguration
- configuration via application.yml
- provide metrics via Spring Boot actuator and Promtheus
-
Improved exception handling:
- new exception types that are easier to understand
(StopProcessingException and RetryProcessingException) - new exception types now require error descriptions in any case
- convenience API for error handling, esp. in combination with
Java's Optional
- new exception types that are easier to understand
-
Simplified custom messages:
- new base class for ready to go custom message implementations
- a new API to implement custom messages: Implementing
FlusswerMessage is now all you need - Custom Jackson mixins are now optional
-
new API for collecting metrics
-
minor fixes and improvements
Version 3.1.0 prepares:
- The control exception types of previous versions are deprecated now
and will be removed in version 4.0.0