p

riff

raft

package raft

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. raft
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. final case class AppendOccurredOnDisconnectedLeader(originalAppend: LogAppendSuccess, newAppend: LogAppendSuccess) extends Exception with ClientError with Product with Serializable
  2. final case class AppendStatus(leaderAppendResult: LogAppendSuccess, appended: Map[NodeId, AppendEntriesResponse], appendedCoords: Set[LogCoords], clusterSize: Int, committed: Set[LogCoords], errorAfterAppend: Option[Exception] = None) extends Product with Serializable

    Represents the current state of the cluster following an append

    Represents the current state of the cluster following an append

    appended

    a map of the cluster ids to a flag indicating whether or not the node has appended the entry

    appendedCoords

    the log coords which have been appended on the leader

    clusterSize

    the size of the cluster

    committed

    the coordinates of committed entries on the leader after quarum has ack'd

    errorAfterAppend

    A means of letting observers know that a log append error has occurred, perhaps due to a leader change

  3. final case class AttemptToCommitMissingIndex(attemptedIndex: LogIndex) extends Exception with LogError with Product with Serializable
  4. final case class AttemptToOverwriteACommittedIndex(attemptedLogIndex: LogIndex, latestCommittedIndex: LogIndex) extends Exception with LogError with Product with Serializable
  5. trait ClientError extends Exception
  6. final case class LogAppendException[T](coords: LogCoords, data: T, err: Throwable) extends Exception with LogError with Product with Serializable
  7. final case class LogCommitException(coords: LogCoords, err: Throwable) extends Exception with LogError with Product with Serializable
  8. trait LogError extends Exception
  9. type LogIndex = Int
  10. type NodeId = String
  11. trait RaftClient[F[_], A] extends AnyRef

    The external use-cases for a node in the Raft protocol are:

    The external use-cases for a node in the Raft protocol are:

    1) adding/removing nodes 2) appending data to the cluster, which should return either a new (pending) commit coords, a redirect, or a 'no known leader' 3) subscribing to lifecycle events, which should return a Publisher which lets subscribers know about cluster and leadership changes 4) subscribing to a commit log, which should return a Publisher which lets subscribers know when logs are appended or committed

    All of these algebras don't necessarily have to be in the same trait

  12. type Term = Int

Value Members

  1. def isMajority(numberReceived: Int, clusterSize: Int): Boolean

Inherited from AnyRef

Inherited from Any

Ungrouped