Consensus in Distributed Systems: RAFT vs CRDTs

Distributed systems normally come with a set of challenges: consistency of data, coordination/synchronization for tasks, failures due to network partitions and so on. Consensus algorithms are a solution to some of these problems especially for coordination and synchronization challenges. These algorithms are normally tied to a consistency model which can fall between two extremes: very strong guarantees on consistency and very weak guarantees on consistency. Two consensus algorithms, RAFT and CRDT are compared using a message queueing system that can form the backbone of a distributed application.