Skip to content

JXInsight/Simz – Isolating Integration with External “Cross Cutting Concern” Services

Anyone that has spent time attempting to introduce business analytics, costing and billing into an application or service after it has been designed, tested and more than likely deployed into production is well of aware of the challenges both technical and organizational faced in doing so. Operations and developers are always weary of the potential impact each additional cross cutting concern introduced into application runtime that falls outside of its functional specification and design, especially when such late bindings are not fully understood, not tested and not self regulated to control and budget (overhead) impact. In some cases it is simply not possible to perform such integrations collocated within the application runtime without forcing a change to the configuration of the application due to runtime library dependency mismatches, especially when such integrations require the usage of client side libraries for communicating with backend service end points which have their own third party library dependencies (logging is a typical breaking one).

This is another area in which JXInsight/Simz has drastically simplified the problem space with its near realtime metering replay technology. With JXInsight/Simz, billing integrations via our udr metering extension become so much easier, secure and scalable as the actual work is now completely divorced (in terms of location and even time) from the application except for the metering feed that drives the metering calls made by the simulated application threads, which in turn feeds into the integration pipeline with the external billing service. Operations need only concern themselves with setting up metering within the application runtime. They do not necessarily need to know how the metering feed piped to the Simz service is consumed by the various metering enabled extensions offering integration with business analytics, runtime governance, as well as chargeback and billing solutions.

Isolation can be further extended with filtering applied to the Simz client extension allowing operations to include/exclude subsets of the metering model from being published as events in the metering feed.

Here is a sample jxinsight.override.config file which includes all metering in the com.acme package except for com.acme.db and com.acme.io in being enhanced (and added to the feed) by the Simz client metering extension.

jxinsight.server.probes.simz.enabled=true
jxinsight.server.probes.simz.filter.enabled=true
jxinsight.server.probes.simz.filter.include.name.groups=com.acme
jxinsight.server.probes.simz.filter.exclude.name.groups=com.acme.db,com.acme.io