libraft-0.1.1.0: Raft consensus algorithm

Safe HaskellNone
LanguageHaskell2010

Raft.Client

Synopsis

Documentation

class RaftSendClient m sm where Source #

Interface for Raft nodes to send messages to clients

Methods

sendClient :: ClientId -> ClientResponse sm -> m () Source #

Instances
(MonadIO m, MonadConc m, Serialize sm) => RaftSendClient (RaftSocketT v m) sm Source # 
Instance details

Defined in Examples.Raft.Socket.Node

class Show (RaftRecvClientError m v) => RaftRecvClient m v where Source #

Interface for Raft nodes to receive messages from clients

Associated Types

type RaftRecvClientError m v Source #

Instances
(MonadIO m, MonadConc m, Serialize v) => RaftRecvClient (RaftSocketT v m) v Source # 
Instance details

Defined in Examples.Raft.Socket.Node

Associated Types

type RaftRecvClientError (RaftSocketT v m) v :: Type Source #

data ClientRequest v Source #

Representation of a client request coupled with the client id

Constructors

ClientRequest ClientId (ClientReq v) 
Instances
Show v => Show (ClientRequest v) Source # 
Instance details

Defined in Raft.Client

Generic (ClientRequest v) Source # 
Instance details

Defined in Raft.Client

Associated Types

type Rep (ClientRequest v) :: Type -> Type #

Serialize v => Serialize (ClientRequest v) Source # 
Instance details

Defined in Raft.Client

type Rep (ClientRequest v) Source # 
Instance details

Defined in Raft.Client

type Rep (ClientRequest v) = D1 (MetaData "ClientRequest" "Raft.Client" "libraft-0.1.1.0-8nwazCMBvi7EUIW9UIbZhF" False) (C1 (MetaCons "ClientRequest" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 ClientId) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (ClientReq v))))

data ClientReq v Source #

Representation of a client request

Constructors

ClientReadReq

Request the latest state of the state machine

ClientWriteReq v

Write a command

Instances
Show v => Show (ClientReq v) Source # 
Instance details

Defined in Raft.Client

Generic (ClientReq v) Source # 
Instance details

Defined in Raft.Client

Associated Types

type Rep (ClientReq v) :: Type -> Type #

Methods

from :: ClientReq v -> Rep (ClientReq v) x #

to :: Rep (ClientReq v) x -> ClientReq v #

Serialize v => Serialize (ClientReq v) Source # 
Instance details

Defined in Raft.Client

Methods

put :: Putter (ClientReq v) #

get :: Get (ClientReq v) #

type Rep (ClientReq v) Source # 
Instance details

Defined in Raft.Client

type Rep (ClientReq v) = D1 (MetaData "ClientReq" "Raft.Client" "libraft-0.1.1.0-8nwazCMBvi7EUIW9UIbZhF" False) (C1 (MetaCons "ClientReadReq" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "ClientWriteReq" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 v)))

data ClientResponse s Source #

Representation of a client response

Constructors

ClientReadResponse (ClientReadResp s)

Respond with the latest state of the state machine.

ClientWriteResponse ClientWriteResp

Respond with the index of the entry appended to the log

ClientRedirectResponse ClientRedirResp

Respond with the node id of the current leader

Instances
Show s => Show (ClientResponse s) Source # 
Instance details

Defined in Raft.Client

Generic (ClientResponse s) Source # 
Instance details

Defined in Raft.Client

Associated Types

type Rep (ClientResponse s) :: Type -> Type #

Serialize s => Serialize (ClientResponse s) Source # 
Instance details

Defined in Raft.Client

type Rep (ClientResponse s) Source # 
Instance details

Defined in Raft.Client

newtype ClientReadResp s Source #

Representation of a read response to a client The s stands for the "current" state of the state machine

Constructors

ClientReadResp s 
Instances
Show s => Show (ClientReadResp s) Source # 
Instance details

Defined in Raft.Client

Generic (ClientReadResp s) Source # 
Instance details

Defined in Raft.Client

Associated Types

type Rep (ClientReadResp s) :: Type -> Type #

Serialize s => Serialize (ClientReadResp s) Source # 
Instance details

Defined in Raft.Client

type Rep (ClientReadResp s) Source # 
Instance details

Defined in Raft.Client

type Rep (ClientReadResp s) = D1 (MetaData "ClientReadResp" "Raft.Client" "libraft-0.1.1.0-8nwazCMBvi7EUIW9UIbZhF" True) (C1 (MetaCons "ClientReadResp" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 s)))

data ClientWriteResp Source #

Representation of a write response to a client

Constructors

ClientWriteResp Index

Index of the entry appended to the log due to the previous client request

Instances
Show ClientWriteResp Source # 
Instance details

Defined in Raft.Client

Generic ClientWriteResp Source # 
Instance details

Defined in Raft.Client

Associated Types

type Rep ClientWriteResp :: Type -> Type #

Serialize ClientWriteResp Source # 
Instance details

Defined in Raft.Client

type Rep ClientWriteResp Source # 
Instance details

Defined in Raft.Client

type Rep ClientWriteResp = D1 (MetaData "ClientWriteResp" "Raft.Client" "libraft-0.1.1.0-8nwazCMBvi7EUIW9UIbZhF" False) (C1 (MetaCons "ClientWriteResp" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Index)))

data ClientRedirResp Source #

Representation of a redirect response to a client

Instances
Show ClientRedirResp Source # 
Instance details

Defined in Raft.Client

Generic ClientRedirResp Source # 
Instance details

Defined in Raft.Client

Associated Types

type Rep ClientRedirResp :: Type -> Type #

Serialize ClientRedirResp Source # 
Instance details

Defined in Raft.Client

type Rep ClientRedirResp Source # 
Instance details

Defined in Raft.Client

type Rep ClientRedirResp = D1 (MetaData "ClientRedirResp" "Raft.Client" "libraft-0.1.1.0-8nwazCMBvi7EUIW9UIbZhF" False) (C1 (MetaCons "ClientRedirResp" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 CurrentLeader)))