[WIP] Akka.Cluster.Tools & Akka.Cluster.Sharding with tests and examples #1502
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.
This PR introduces two cluster contrib modules:
Akka.Cluster.Tools
gives cluster singleton, distributed topic-based publish/subscribe mechanism and cluster client to allow to communicate with akka cluster from actor systems not joined to the cluster itself. Example can be found under /Examples/Cluster/ClusterTools path. Known issue is that JSON.NET is not able to correctly deserializeDictionary<Address, ...>
type, which is used in one of the messages by distributed pub/sub and cluster client.Akka.Cluster.Sharding
gives ability to create sharded on-demand actor creation with automatic rebalancing and handoff on eventual cluster node failures. Example can be found under /Examples/Cluster/ClusterSharding path and uses Akka.Persistence.Sqlite as (required) persistence backend. It used bin/Debug/store.db database file for automatic cluster resolution - it must be removed between separate usages, as cluster nodes doesn't get removed automatically when someone will hard kill the process.Additional changes:
SerializerWithManifest
class ported from JVM akka-core.SerializerIdentifierHelper
class.Known issues, that still need to be resolved: