Feature: NATS Backplane #486
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Added a NATS Backplane
I added a new project which uses NATS as a backplane for cache events. It's relatively straightforward
Reduced allocations for backplane messages
I also noticed some easy improvements that could be made to drastically reduce allocations for Backplane message, so I did a few things.
BackplaneMessage
is now areadonly struct
instead of a class which means it can be allocated on the stackBackplaneMessage
now has aTryParse
static method which tries to deserialize aReadOnlySpan<byte>
into aBackplaneMessage
and now provides an instance methodWriteTo
which serializes theBackplaneMessage
to anIBufferWriter<byte>
with no allocations.Made Backplane Tests easily extensible
I made the L1BackplaneTests and the L1L2BackplaneTests abstract classes which can easily be inherited and implement methods to provide the
IFusionCacheBackplane
and theIDistributedCache
so tests for new backplane and Distributed Caches can easily be implemented.This could be further improved by making these test classes perhaps take the Backplane and Distributed cache as parameters for parameterized tests. I might look at doing it like that to make it even easier.