The latest version of Diffusion™ contains new features,
performance enhancements and bug fixes.
Automatic topic removal
A common requirement is to remove a topic based on conditions like inactivity, elapsed time or lack of subscribers. The new
automatic topic removal feature makes this easy to implement.
Using simple but powerful expressions, you can define the conditions for topic removal. Even complex requirements like
"remove this topic if it has less than two subscribers for a continuous period of 1 hour" can be expressed.
You can remove the original topic that the condition is evaluated on, or a set of topics based on a selector expression.
This feature replaces topic event listeners and "remove topic with session", which are now deprecated.
For full details, see Removing topics automatically.
It's often useful to have a 'private' session linked to a particular user, for example to provide
a personalised feed that others can't access. Topic ownership provides a simple way to grant read, modify
and update access for a topic to a particular security principal.
Combining this with automatic topic removal makes it easy to clean up the topic when the user becomes inactive.
For more information, see Topic ownership.
Major improvements to conflation with wider topic support
Conflation improves performance under load by selectively removing out of date topic updates.
This reduces server memory footprint, and the amount of network data to bring a client session up to date.
Diffusion 6.1 features a brand-new conflation
system which is easier to use, leading to increased performance gains and more reliable sessions.
In 6.0, conflation was limited to the deprecated stateless, single value and record topic types. In 6.1,
you can use conflation with the full range of topic types: JSON, binary, int64, double, string, recordV2 and time series.
Configuration is now done with a convenient topic property, which offers a choice of four conflation policies.
Conflation is enabled by default, using a policy that only applies conflation to full message queues where it is needed,
giving the best all-round performance savings for most applications. In some applications, where receiving
every update matters, you may wish not to use conflation.
For more information, see Using conflation and Configuring conflation.
Quorum sensing to avoid split-brain clusters
To avoid 'split-brain' problems where a server in a cluster loses connection and tries to rejoin, you can now set a minimum
cluster size in Replication.xml. Any server that finds itself in a cluster below this threshold
will shut down, enabling a clean restart and recovery.
More flexible persistence
A new PERSISTENT topic property enables persistence to be disabled for individual topics, even if it's enabled at the server level.
The web-based Diffusion monitoring console has been greatly improved with a new, cleaner interface.
Display of your topics and the data they contain has been improved. You can even drag and drop topic names and values.
Changes to the console layout are now stored locally, so different members of your staff can create different views.
Behind the scenes, the number of topics used to display internal metrics has been reduced for a smaller memory footprint.
Expanded feature support for .NET, C and Apple SDKs
With Diffusion 6.1, .NET developers can now use topic notifications, time series topics
and request-response messaging.
Apple developers can take advantage of topic notifications, subscription control and improved messaging
support, enabling sending requests to filters.
Finally, the C SDK now supports all topic types except for time series topics, creating topics from specifications,
and the use of value streams.
Improved outbound queue management
Message queue size limits can now be configured in terms of a maximum number of bytes using a new
max-bytes setting. This can be set
per session using Server.xml, or per connector in Connectors.xml.
.NET Core 2.0 support
The .NET client is now based on .NET Standard 2.0, meaning it supports the .NET Framework 4.6.1 and .NET Core 2.0