Driver baseclass logic forwards messages to a trex cluster switching nodes until it finds the leader.
A concrete driver which uses akka.tcp to send messages.
A concrete driver which uses akka.tcp to send messages. FIXME Note akka documentation says that akka.tcp is not firewall friendly.
FIXME the location visible to the client may be a completely different host/interface so one host and two ports doesnt cut it.
FIXME the location visible to the client may be a completely different host/interface so one host and two ports doesnt cut it. A node is an immutable addressable process within the cluster. If a process is moved to another location, such that its address changes, it just leave the cluster and rejoin at another address, with a new node membershipId.
The unique ID in the cluster for this addressable node. If the process moves host or port a new membershipId must be assigned by having the node leave the cluster and rejoin it.
The host of the node.
The client tcp port of the node.
The intercluster udp port of the node.
Cluster membership durable store.
Driver baseclass logic forwards messages to a trex cluster switching nodes until it finds the leader. The driver coverts the application command value into a byte array ready to journal on the server.
FIXME we retry on timeout yet we don't know if the command happened on a timeout and whether it is safe to retry we should have a map of what client messages types are known safe to retry (e.g. read-only) and only retry those.