Scalable service discovery and RPC library
sonar
is an OTP application that offers a solution for the service
discovery and routing problem for native Erlang/Elixir nodes by
broadcasting node configuration to the network and maintaining a hash
ring per registered service.
All nodes are always aware of the available services on the network and will eventually reach a consistent state. From there on, you can call any service node in the network by different means:
- You can call all nodes registered for a given service
- You can call an specific node for a given service hashed by a key
- You can call
n
adjacent nodes for a given service hashed by a key for data redundancy
If available in Hex, the package can be
installed by adding sonar
to your list of dependencies in mix.exs
:
def deps do
[{:sonar, "~> 0.1.0"}]
end
Documentation can be generated with ExDoc. The most reliable source of documentation is the ExDoc comments and the wiki
Please take your time to read throught our CONTRIBUTING.md guide for understanding the development flow and guidelines.
Consider taking a look at the issue tracker if you want to start helping out.
All documentation non strictly related to source code is found in the wiki. Although not explicitly stated in the CONTRIBUTING.md guidelines, the same principles apply to the wiki.
Copyright (c) 2017 Tappsi S.A.S
This work is free. You can redistribute it and/or modify it under the terms of the MIT License. See the LICENSE file for more details.