For the complete documentation index, see llms.txt. This page is also available as Markdown.

πŸ“œTalon 3.16.70

Release Date: Friday, March 20, 2026

Compatibility Notes

The following issues have compatibility implications:

Change Summary

Bugs

TALON-137

Intermittent core dump when enabling ZG per thread stats

This release fixes an intermittent core dump that could occur when ZG (Zero Garbage) per thread stats were enabled. The fix replaces the previous ThreadMXBean reflection-based approach with native JNI calls for per-thread telemetry collection, which is both more reliable and truly zero-garbage.

Compatibility impact:

  • Per-thread stats now require the native library to be available. If the native runtime is not loaded, per-thread stats will be unavailable (previously there was a non-ZG fallback using ThreadMXBean).

  • The non-ZG fallback for per-thread stats has been removed. Environments that relied on per-thread stats without the native library will no longer have this capability.

  • Per-thread wait time, wait count, and affinity fields are no longer reported in individual thread stats within XVM heartbeats. Thread affinities can still be ascertained via:

    • Automatic dump at engine start: When thread affinitization is enabled, the AEP engine automatically logs the affinitization state at startup (at CONFIG trace level).

    • XVM admin command: The affinitydump (or xvm_affinitydump) admin command can be invoked at any time to dump the current thread affinitization state to the XVM's trace log.

  • There is a maximum limit of 2048 native threads that can be tracked per collection cycle.

New Features

TALON-98

Non-zero exit code from the XVM on error

This release enhances the XVM to return a non-zero exit code if an error causes its exit

TALON-146

Add Process RSS (Resident Set Size) metric to XVM heartbeats

This release adds the current process's Resident Set Size (actual physical RAM usage) in the container heartbeats

Note: the heartbeat field id assigned to this metric collides with the Rumi 4.0 schema and breaks rumi-agent heartbeat deserialization (see the known-issue notice at the top of this page). The collision is corrected under TALON-159 in Talon 3.16.72.

Improvements

TALON-143

Add PostWireTs to service message logs and store transaction logs

Adds PostWireTs β€” the timestamp captured just after a message is received from the messaging provider β€” to the inbound message log (Event Sourcing and State Replication) and the store transaction log (Event Sourcing only). Not added to the store transaction log or outbound message log for State Replication. Requires nv.msg.latency.stats=true.

TALON-144

Add PreWireTs to service message logs

Adds PreWireTs β€” the timestamp captured just before a message is handed to the messaging provider send call β€” to the inbound message log (Event Sourcing and State Replication) and the store transaction log (Event Sourcing only). For inbound messages, PreWireTs is the upstream sender's pre-send timestamp; PostWireTs minus PreWireTs represents the wire transit time (not accounting for clock skew). Not added to the store transaction log or outbound message log for State Replication. Requires nv.msg.latency.stats=true.

TALON-145

Enable parallel builds using ADM Maven Plugin

This release makes the ADM Maven plugin thread-safe, enabling parallel code generation during concurrent Maven builds (mvn -T). Shared static state in the plugin (import cache, plugin registry, date formatters) has been synchronized using thread-safe collections and ThreadLocal, and all Mojo goals are now declared threadSafe = true.

Changes

TALON-147

Change freePhysicalMemorySize heartbeat field to report MemAvailable instead of MemFree on Linux.

This release changes the freePhysicalMemorySize field in container heartbeat memory stats to report the host's available memory (MemAvailable) rather than raw free memory (MemFree) on Linux. Priopr to this change, the value excluded memory used by the kernel for page cache and buffers, which made the host appear to have far less usable memory than was actually available. This change accounts for reclaimable cache and buffers, providing a more accurate representation of the memory available for use.

Last updated