Rymote.Synapse.Cluster.Redis 1.0.0

dotnet add package Rymote.Synapse.Cluster.Redis --version 1.0.0
                    
NuGet\Install-Package Rymote.Synapse.Cluster.Redis -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Rymote.Synapse.Cluster.Redis" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Rymote.Synapse.Cluster.Redis" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Rymote.Synapse.Cluster.Redis" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Rymote.Synapse.Cluster.Redis --version 1.0.0
                    
#r "nuget: Rymote.Synapse.Cluster.Redis, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Rymote.Synapse.Cluster.Redis@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Rymote.Synapse.Cluster.Redis&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Rymote.Synapse.Cluster.Redis&version=1.0.0
                    
Install as a Cake Tool

Rymote.Synapse.Cluster.Redis

Redis-backed IMembershipProvider for Rymote.Synapse.Cluster.

What it does

  • Each node writes a Redis hash entry (synapse:{cluster}:members:{guid}) with its endpoint, heartbeat timestamp, and active subscriptions.
  • A background heartbeat loop refreshes the TTL (default 15 s) every 5 s, ensuring stale nodes expire automatically.
  • Nodes publish join / leave / subscription-change events on a Redis pub/sub channel (synapse:{cluster}:membership-events) so peers receive real-time membership updates via IMembershipProvider.Changes.
  • On graceful shutdown, the node deletes its own hash key and publishes a leave event before disposing the connection.
  • The Members collection is lazily populated by scanning synapse:{cluster}:members:* keys with a 1-second in-memory cache so hot-path reads don't hammer Redis.

What it doesn't do

  • Does not perform active health-checking of peers; peer liveness is inferred from Redis TTL expiry.
  • Does not support clustered or Sentinel Redis configurations out of the box — any standard StackExchange.Redis ConfigurationOptions connection string works, but you must configure it yourself.

Quickstart

services.AddSynapse()
    .UseTcpTransport(...)
    .UseRedisMembership(membership =>
    {
        membership.ConfigurationString = "localhost:6379";
        membership.ClusterName = "production";
        membership.SelfIdentity = NodeIdentity.NewIdentity();
        membership.SelfEndPoint = new IPEndPoint(IPAddress.Loopback, 8443);
    })
    .UseCluster();

AbortOnConnectFail is forced to false so the bus starts up even when Redis is temporarily unavailable at launch.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 91 5/18/2026