Skip to content

Latest commit

 

History

History
63 lines (42 loc) · 1.67 KB

README.md

File metadata and controls

63 lines (42 loc) · 1.67 KB

Lasp PG

Build Status

Eventually consistent process registry, the spirtual successor to Riak PG.

Usage

What are groups?

-type group() :: term().

Join a process to a group (no need to pre-declare)

lasp_pg:join(group(), pid()) -> ok.

What about removing?

lasp_pg:leave(group(), pid()) -> ok.

You can also return the members.

lasp_pg:members(group()) -> {ok, sets:set(pid())}.

Clustering

Use the lasp_peer_service API to join and leave nodes:

lasp_peer_service:join({Name, IP, Port}).

Partisan

Our Partisan library drives what distribution facility you use: you can use the custom HyParView inspired backend, which scales to 512+ node Erlang clusters, or fall back to client/server or full-mesh with distributed Erlang.

This can be configured using the following command, before the Partisan application is started:

partisan_config:set(partisan_peer_service_manager, partisan_hyparview_peer_service_manager).

Available options are: partisan_client_server_peer_service_manager, partisan_default_peer_service_manager or partisan_hyparview_peer_service_manager.

Replication

Lasp PG uses the underlying Lasp KV store, which only has in-memory persistence currently, but a configurable API so that can be changed to use either RocksDB or LevelDB. Lasp KV is fully replicated across all nodes, but partial replication is coming soon.