The latest version of Diffusion™ contains new features,
performance enhancements and bug fixes.
A topic view is a rule that maps one part of the topic tree to another. By applying a topic
view, you can have the server do the heavy lifting to transform topic data to a form that
suits subscribing clients. Topic views reduce or remove transformation processing that was
previously required in application updater code.
A topic view can simply re-present topics under a different path, or take advantage of one
or more advanced transformations including:
- Adjusting topic properties so the mapped topics behave differently. For example, compression
and conflation options can be tuned.
- Transforming the topic value. In this release, a view can extract a part of a JSON topic value.
Further transformations are planned for future releases.
- Deriving the target path from part of a JSON topic value. Doing so effectively creates a
secondary index on the value.
- Throttling the update rate to reduce the rate of data sent to subscribers. Topic updates
are automatically conflated on the server.
Topic views can be added using any of the Diffusion client libraries using a new API, or defined
by an administrator using the Diffusion console. Topic views are persisted by the server, so they survive
server restarts. If the server belongs to a cluster, topic views are automatically replicated to the
other members of the cluster.
New server metrics
The set of metrics published by the server has been completely redesigned. The new metrics are published
to the developer console, JMX, and the Prometheus gateway (Prometheus is only active
if you have a Community Evaluation licence or
a commercial licence with Scale & Availability).
Highlights include new metrics for the number of connected sessions, session-related messages and bytes
(inbound and outbound), total network bytes (inbound and outbound), topic data size, topic subscriptions,
topic subscribers, topic updates, and topic subscriber updates. Log event metrics are now broken down by
log level and code.
Session metric collectors can be configured to record metrics for subsets of the sessions. Each session
metric collector specifies the target sessions using a session filter, and the metrics can be further
partitioned by an arbitrary list of session properties. Topic metric collectors can be configured to record
metrics for subsets of the topics.
Each topic metric collector specifies the target topics using a topic
selector. The metrics can optionally be further partitioned by topic type. Like server-level metrics, collected
metrics are published to the console, JMX, and (optionally) the Prometheus gateway. Metric collectors can be
defined using the console or JMX. The server will be persist the configuration, so the metric collectors will
be recreated if the server is restarted. If the server belongs to a cluster, the configuration will be replicated
across all members of the cluster.
See Metrics and Configuring metrics for full
To try out Prometheus support, visit the Diffusion Community Site at community.pushtechnology.com
and request a Community Evaluation licence.
The topic tree browser has been updated for ease-of-use, and now presents topic properties and
the applicable security permissions. Topics can be added and deleted from the console.
New console views have been added for topic metrics, session metrics, and log metrics.
Topic metric collectors can be configured directly in the console.
Topic views can be listed, added, and updated in the console.
See Diffusion monitoring console for an overview of the console and instructions on how to
Security and authentication replication
Changes to system authentication and security configuration stores are now automatically
replicated across a cluster of Diffusion servers.
Using this, authentication handlers deployed to node.js gain the same abilities as .NET
and Java and can set and override the session properties of authenticated sessions.
The C library now supports time series topics and the change roles API.
The Apple library now supports session locks, the Diffusion 6.2 update API enhancements,
and client proposed session properties.