Validating Key-value Based Implementations of the Raft Consensus Algorithm for Distributed Systems