This is a work in progress and is not for public consumption yet. We have moved all separate happner components together into a monorepo, for ease of development.
We are also modernizing a lot of the internals, and will be re-doing the documentation - which has admittedly prevented adoption by anyone who has not worked on this framework.
The happner suite has 4 top-level modules:
- happn-3 - the bottom layer, this manages data-storage, pub/sub and security. happn-3 can be used independently from the other layers - it's technical equivalent would be firebase.
- happner-2 - the rpc layer, this sits on top of happn-3 and provides a means of exposing javascript module methods to the outside world.
- happn-cluster - sits on top of happn-3, allows for the creation of a pub/sub cluster.
- happner-cluster - sits on top of happn-3, happner-2 and happn-cluster, allows for the creation of a clustered rpc setup, where work is distributed across multiple cluster nodes in the cloud.
git clone https://github.com/happner/happner-suite.git
cd happner-suite
npm i
This the pub/sub and datastorage layer of the system - happn-3 is similar to firebase in a lot of respects, it combines datastorage with an events communicated over websockets.
This is the rpc layer, it uses happn-3 for communication, and provides the ability to discover and call server-side components as if they were local.
Adds cluster capability to happn-3.
Adds cluster-capability to happner-cluster.
The data providers are plugins that need to be setup as npm dependencies and configured as data providers
the default embedded data provider, see loki
// configure in happn
// configure in happner
mandatory for clustered setup or situations where there is high data volume
// configure in happn
// configure in happner
still maintained for backward compatability - this was the original default embedded data provider (will eventually be discontinued)
// configure in happn
// configure in happner