Summer is coming to an end, and we're finishing it off with a new production release. While this particular release isn't anchored by any new blockbuster functionality, users will benefit from a ton of new functionality and fixes.
As always, the changelog for this release is here, but here are some of the highlights:
- The summer release is now available as a multiarch docker container, supporting x64 and arm64 in a single image. This makes deployments in mixed cloud environments much simpler.
- New validation tools have been added to help with checking your policy code before deployment, both for our standard helpers and the base init.lua.
- Introduced the new kumo.serde module to centralize and speed up SERialize/DEserialize operations in JSON, TOML, and YAML.
- We have significantly expanded the number of metrics exposed by the metrics API, in both Prometheus and JSON formats. This enables more advanced performance tuning by giving greater insight into which area of the messaging flow is potentially resource-starved. For examples on how to leverage this for visual monitoring, see our recent blog entry on monitoring KumoMTA with Prometheus and Grafana. This also greatly expands the amount of information we show in the kcli top command.
- We've added the kcli trace-smtp-client command, allowing senders to get detailed logging of outbound connections to help diagnose issues with specific destination MXes.
- We've sped up shutdown and restart by forcing pending connections closed instead of waiting for them to timeout. This means KumoMTA only waits for active transactions to finish, shortening shutdown times in some scenarios significantly.
- KumoMTA now has configurable minimum free space thresholds for the spool and log writers. This prevents the server from running out of disk by rejecting incoming traffic until the available free space is above the threshold again. Users implement a log retention policy to avoid triggering these thresholds.
We look forward to seeing what you do with our latest release, and are available for questions in our Discord.