v1.0.0-preview1
Pre-releaseImportant
Yep, it's almost v1.0
time!
Please try this preview1
release and let me know if you find any issue, so the v1.0
can be as good as possible: from now until v1.0
is out I will no longer consider requests for new features.
Thanks 🙏
⚡ Reflection no more
Not technically a problem per se, but with the release of the new and improved auto-recovery in v0.24.0, I had to add a little bit of reflection usage to support complex scenario of recovering some of the transient distributed errors.
Now, the small amount of code that was using reflection is gone, and this in turn means:
- overall better performance
- be better positioned for, eventually, playing with AOT (where reflection is basically a no-go)
See here for the issue.
🔭 Add eviction reason to Open Telemetry metrics
With v0.26.0 native support for Open Telemetry has been added to FusionCache.
Now community members @JoeShook noticed that the eviction reason was missing from the Eviction counter, which could be in fact useful.
Now it has been added, thanks Joe!
See here for the PR.
🔭 Removed cache instance id from Open Telemetry metrics
Community member @rafalzabrowarny noticed that FusionCache was adding a tag to the metrics, specifically one with the cache instance id: now, since it's a random value generated for every FusionCache instance, it will have a high cardinality and that is usually problematic with APM platforms and tools.
Now it's gone, thanks Rafał!
See here for the issue.
👷♂️ Better detection of incoherent CacheName
s options
With the introduction of the builder in v0.20 FusionCache got a nice way to configure the various options and components, in a very flexible way.
In one particular scenario though, it was possible to specify something incoherent: a single instance with multiple CacheName
s, specified in different ways by using both the high level AddFusionCache("MyCache")
and the WithOptions(...)
methods.
A couple of examples:
services.AddFusionCache("foo")
.WithOptions(options => {
options.CacheName = "bar";
});
or, more subtly:
services.AddFusionCache()
.WithOptions(options => {
options.CacheName = "bar";
});
Now FusionCache correctly detects this scenario and throws an exception as soon as possible, helping the developer by showing the golden path to follow and how to do to solve it.
Thanks @albx for spotting this!
See here for the issue.
👷♂️ Better builder auto-setup
Again with the builder, when using the TryWithAutoSetup()
method in the builder it now also try to check for registered memory lockers by calling TryWithMemoryLocker()
, automatically.
📜 Better logs
More detailed log messages in some areas where they could've been better (mostly related to the backplane).
📕 Docs
Updated some docs with the latest new things.