[ANN] Syn v3
Roberto Ostinelli <[email protected]>
| Newsgroups | gmane.comp.lang.erlang.general |
|---|---|
| Message-ID | <CAFXp3LKhO5jbjp9mMDu+qSPRAJSk81fzAinuHDDaPiW855R=hQ@mail.gmail.com> |
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