What's new in Diffusion 6.10?
The latest version of Diffusion™ contains new features, performance enhancements and bug fixes.
A complete list of the latest updates and known issues can be found in the Release Notes available at http://docs.diffusiondata.com/docs/6.10.0/ReleaseNotice.html
Floating Point Support in Topic Views
The Topic Views feature now supports floating point numbers in all clauses. This particularly applies to the 'process' transformation which now has support for setting floating point numbers and using them in calculations. This includes the ability to specify the scale (the number of places after the decimal point) and the rounding policy to use in calculations.
For full details of all aspects of Topic Views there is now a new improved page in the user manual which covers all new functionality.
Conditional Update Constraints
Since release 6.2 it has been possible to specify constraints when updating a topic, either directly or using an update stream. One of these constraints is checking the current value of the topic before applying the update. Until now, the only constraint possible on a value was an exact binary equality comparison with the current value.
This has now been extended to support relational comparisons, such as 'greater than', 'less than' etc. and the values specified do not have to exactly match the type. For example, you can now specify that the update is only applied if the current value is less than 5 and this would work with integral or floating point values. It would even work against a string value containing a number. This functionality applies when checking the whole topic value or when checking a partial JSON value (a JSON field).
All SDKs except Python support this new functionality.
OR Operator in Update Constraints
Previously it was possible to compose update constraints using an `and` method so that you could say that the update would only be applied if a lock was held and the value was equal to a specified value.
At this release you can also use an `or` method to compose constraints along with `and` so that you can now say that an update is only applied if there is no topic or the topic has no value or the value is less than 5. You can mix `and`s with `or`s and the operator precedence is determined by the order of composition.
All SDKs except Python support this new functionality.
Ability to Retrieve Metrics using the API
Until now metrics have been available through Prometheus or viewable via the Diffusion Console, but at this release you can also retrieve metrics via the API.
This is achieved using a new metricsRequest method in the `Metrics` feature which returns an object which you can configure and then issue a `fetch` request to return the required metrics. By default it will return all metrics for all servers in a cluster but it is possible to request only metrics for the current connected server or for specified servers. It is also possible to filter the metrics so that the result only contains the metrics you are interested in.
At this release, this functionality is only available in the Java, .NET and Javascript SDKs.
Update Stream Recovery
Previously, if a Diffusion cluster repartitioned whilst clients were updating using an update stream a transient error would occur and the update stream would be invalidated. The updating application would need to be coded to recover from such an eventuality.
At this release, when building an update stream, it is possible to specify a retry strategy and in this case a new `RecoverableUpdateStream` would be created. This special stream keeps in flight updates and is able to reapply them when a transient cluster error occurs thus reducing the complexity of the calling application.
All SDKs, except Python, support this functionality.
REST API to Manage the Gateway Framework
The Gateway Framework and associated adapters was introduced in 6.9 and adapters could be dynamically managed and configured using the Diffusion Console.
At this release a REST API has been introduced which allows for programmatic dynamic configuration and control of Gateway Framework adapters.
A REST API user authenticates using a Logon call and is returned a token which it can use to make subsequent REST calls to manage the Gateway. Such REST sessions are visible in the Console and appear in metrics. They can also be programmatically controlled, for example they can be closed using the ClientControl feature.
See the Rest API user manual for full details.
Other improvements
The .NET, C and Apple SDKs now support the configuration of reverse remote server connections (introduced in 6.9).
Other minor improvements have been made - for a full list see the Release notes.
Deprecations
none
Removals
Routing topics (deprecated in 6.7) have been removed at this release.
The deprecated `TopicAddFailReason.INCOMPATIBLE_PARENT` and associated `IncompatibleParentTopicException` have been removed at this release from the Java SDK. Equivalents have also been removed from all other SDKs.
`TopicPermission` was deprecated at release 6.5 in favour of `PathPermission`. It has been removed at this release along with all associated methods.
Several unused and deprecated message types have been removed from the C Client
See Upgrading from version 6.9 to version 6.10 and the release notes at http://docs.diffusiondata.com/docs/6.10.0/ReleaseNotice.html for full details.