<p>Background:
There is a need in our project to store the balance info in a KV store. The KV store need strongly data consistence across DCs(different Kubernetes clusters), because we target to deploy the KV store across 3 DCs(different Kubernetes clusters) for high availability.</p>
<p>Our design:
Deploy HazelCast 3 nodes to 3 different Kubernetes clusters/dockers in 3 different DCs.
It means each DC has 1 Kubernetes cluster, the Hazelcast node is deployed to the docker of the cluster. So total 3 HazelCast nodes to form a cluster.</p>
<p>Our questions:</p>
<ol>
<li>Are those 3 HazelCast nodes able to form a cluster? As we know, they communicate through TCP only. But communicate across different Kubernetes/namespace need to go through Ingress which is HTTP.</li>
<li>Is HazelCast able to persist data to the Kubernetes PVC(PersistentVolumeClaim)?</li>
<li>Is the data strongly consistent among the 3 Hazelcast nodes? Is it base on Raft?</li>
</ol>

Fathand Qi
<ol>
<li>You probably don't want to form a Hazelcast cluster across different Kubernetes cluster, as network-wise, it wouldn't be very performant. You need to check <a href="https://docs.hazelcast.com/imdg/4.2/wan/wan.html" rel="nofollow noreferrer">WAN Replication</a></li>
<li>Hazelcast stores data in-memory and not on disk.</li>
<li><a href="https://docs.hazelcast.com/imdg/4.2/cp-subsystem/cp-subsystem.html" rel="nofollow noreferrer">Hazelcast CP subsystem</a> implements Raft. Not all data structures are supported by the CP subsystem, but since you mention KV store - <code>IMap</code> is.</li>
</ol>
