DotNext.Net.Cluster.Consensus.Raft: Seed members and joining members? #62
Replies: 2 comments 4 replies
-
Hi @rogeralsing , Long answer: Writing custom configuration providers for the purpose of service discovery may be challenging and redundant. Therefore, in version 3.1.0 (which is in development now) a new way of service discovery is introduced: This interface is introduced because there are too many hosting infrastructures exist: Kubernetes, clouds, pure Docker, bare metal etc. As a result, I can't offer universal implementation. Instead, it's better to provide extensibility point to the developers. In other words, service discovery is delegated to library consumers. From my point of view, it's not a goal of Raft implementation to provide built-in universal discovery mechanism. In case of bare metal deployment, some solutions such as Hazelcast IMDG use their own discovery mechanism based on UDP broadcast. .NET Framework has PRNP but it looks like dead (Windows-only, not ported to .NET Core). UDP broadcasting has many drawbacks and network engineers usually don't like this approach. I think you're looking for some default service discovery mechanism. Raft is about building consistent and reliable clusters. |
Beta Was this translation helpful? Give feedback.
-
@rogeralsing , I would like to inform you about upcoming changes in the next minor versions of
HyParView and SWIM will be provided as transport-agnostic and HTTP implementations. Depends on your needs, you will be able to utilize one of these implementations for discovering peers in the cluster. |
Beta Was this translation helpful? Give feedback.
-
Is the DotNext.Net.Cluster.Consensus.Raft cluster capable of allowing non-specified members to join the cluster?
e.g. cluster boots with 3 seed nodes, then additional nodes join in against one of those, and the cluster become aware of the newly joined nodes?
Or is it purely capable of consensus between the pre-specified members?
In https://github.com/AsynkronIT/protoactor-dotnet , we have externalized all cluster management.
e.g. we use Consul or Kubernetes API to get the cluster topology.
I would very much like to give it a try to use dotNext Raft as an alternative cluster provider, as it wouldn't require users to have some specific infrastructure in place.
Beta Was this translation helpful? Give feedback.
All reactions