[ANN] Syn v3
Roberto Ostinelli
ostinelli@REDACTED
Sun Oct 24 10:13:02 CEST 2021
All,
Syn v3 has just been released. For those who don't know what it is, Syn
(short for synonym) is a scalable global Process Registry and Process Group
manager for Erlang and Elixir. Syn automatically manages dynamic clusters
(addition / removal of nodes), and is also able to recover from net splits.
v3 builds upon the past experience to improve scalability & handling, and
the main differences are:
- Syn is now based on Scopes. A Scope is a way to create a namespaced,
logical overlay network running on top of the Erlang distribution cluster.
Nodes that belong to the same Scope will form a subcluster: they will
synchronize data between themselves, and themselves only.
- The callback mechanism has been redesigned to support local callbacks
so that every node is notified of register / unregister / join / leave and
update operations. This allows it to properly support node crashing & net
splits. Since the existence of Scopes, it is also now possible to define a
different callback logic per Scope.
- All rpc have been removed, and the registry conflict resolution
doesn't use a global lock anymore. This allows for better scalability and
should allow support for mixed-version cluster support, since internal
messages are now all versioned.
- Tests are now based on a 3 nodes cluster and include concurrency tests
as well.
Docs have been published with elixir's format and are available here:
https://hexdocs.pm/syn
You can get Syn from the usual suspects [1][2].
A quick thank you note for Fred Hebert, who has taken some of his time to
provide me with some helpful input on the design.
Feedback and questions are always welcome.
r.
[1] https://hex.pm/packages/syn
[2] https://github.com/ostinelli/syn
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20211024/0e7f63ed/attachment.htm>
More information about the erlang-questions
mailing list