raketka-1.1.1: basic distributed-process node with configurable peers

Safe HaskellNone
LanguageHaskell2010

Control.Distributed.Raketka.Type.Arg

Description

see also

https://hackage.haskell.org/package/parconc-examples

http://haskell-distributed.github.io/tutorials/1ch.html

This library:

  • has basic working code to enable to start nodes and to connect them with each other
  • may be extended however you are most likely to write your own code that does much more
  • is simple on purpose
  • exchanges pings with other nodes which are expected to pong back
  • both pings & pongs are output to stdout
  • when a node disconnects or stops, the other nodes stdout notifications about this

How to use the program that comes with this library:

start the same program in multiple consoles: 1 per node

pass 2 args:

  1. path to config.json (see enclosed test-conf.json)
  2. idx of this node in the cluster: 0 .. (length Cluster -1)
>>> ./raketka ./test-conf.json 0

stop (ctrl-C) any nodes, see notifications in live consoles

Synopsis

Documentation

data ServerId Source #

one node

Constructors

ServerId 

Fields

  • host :: String

    e.g. localhost or 127.0.0.1

  • port :: Int

    for node communication

  • service :: String

    channel type: choose any string. Use same type for connected nodes or different types for multiple disconnected clusters

Instances

data Cluster Source #

config file structure

Constructors

Cluster [ServerId] 

Instances

Show Cluster Source # 
Generic Cluster Source # 

Associated Types

type Rep Cluster :: * -> * #

Methods

from :: Cluster -> Rep Cluster x #

to :: Rep Cluster x -> Cluster #

FromJSON Cluster Source #

to read conf

type Rep Cluster Source # 
type Rep Cluster = D1 (MetaData "Cluster" "Control.Distributed.Raketka.Type.Arg" "raketka-1.1.1-8nPRPd0x8yH2l1sSBTcmKK" False) (C1 (MetaCons "Cluster" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [ServerId])))