I. Introduction
Distributed systems receive extensive attention nowadays, that networking technologies are flourishing and time-critical system functions are spread over multiple interconnected nodes. The emerging Software Defined Networking (SDN) excels in assisting distributed systems, while in parallel is assisted by distributed systems, since distributed SDN controller clusters are more efficient than single-instance controllers [2]. The most popular open-source SDN controllers, such as ODL [3] and ONOS [4], are fundamentally designed to support clustering. Similarly, Necklace [5] provides an architecture for distributed Service Function Chaining that performs surprisingly well. Finally, Kubernetes [6], OpenStack [7] and Hyperledger-Fabric [8] are a few examples of widely used systems with increased scalability and efficiency, due to their distributed operation, which is assisted by etcd [9] with distributed key-value store. However, these systems require a protocol for reaching consensus between their nodes.