Just a second...

What's new in Diffusion 6.1?

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.pushtechnology.com/docs/6.1.7/ReleaseNotice.html.

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.

Topic ownership

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.

Improved console

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.

Smaller Javascript library

The Javascript client has been optimized to reduce file size, bringing the minified file from 575KiB down to 472KiB.

.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 runtimes.