Is the data strongly consistent among the Hazelcast nodes in different Kubernetes clusters?

7/5/2021

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.

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.

Our questions: 1. 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. 2. Is HazelCast able to persist data to the Kubernetes PVC(PersistentVolumeClaim)? 3. Is the data strongly consistent among the 3 Hazelcast nodes? Is it base on Raft?

-- Fathand Qi
hazelcast
key-value-store
kubernetes

1 Answer

7/5/2021
  1. 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 WAN Replication
  2. Hazelcast stores data in-memory and not on disk.
  3. Hazelcast CP subsystem implements Raft. Not all data structures are supported by the CP subsystem, but since you mention KV store - IMap is.
-- Nicolas
Source: StackOverflow