I am trying to develop an app in Corda V4.0 , and we are using the client RPC API to make a test (using DriverDSL).
My solution has a Raft cluster with 2 notaries to test HA. I also implemented a solution with an observer (in the notary node) so the notary has all transaction recorded in his vault.
When I sent a couple of transactions, the behavior was not as the expected: some transactions were recorded in the notary-cluster 1 and the other transaction were recorded in the notary-cluster 2.
Is it Ok? I expected that all the transaction would be saved in both notary-cluster, otherwise How does Corda resolve the HA?
Thanks
We have asked this question at Corda live support [1], and we get the answer:
The behaviour is the expected by Corda. The only data replicated in a Notary cluster is the needed for notarization. This built-in cluster support is not meant for HA. To implementig HA they suggested us the use of a load balancer and that we had two or more nodes that published as public IP the load balacer's ip. Both nodes should use the same data base (Postgres maybe).
In summary the HA should be resolved outside of Corda. Also they suggested us take a look at the documentation for "Hot-cold high availability deployment" in Corda Enteprise [2], in particular the section for the configuration of the load balancer.