digital-asset / daml

The Daml smart contract language
https://www.digitalasset.com/developers
796 stars 201 forks source link

Provide documentation on how an application should fail over to a different participant node that contains the same party #5799

Open clasoncjDA opened 4 years ago

clasoncjDA commented 4 years ago

Can you please update the documentation to provide details on what guarantees the DA Ledger API makes for the following situation and example code/design pattern(s) on how to best handle at the application level?

1) I have a DAML based ledger that consists of 2 nodes that both have Party Alice assigned to them.

2) My application is connected to the gRPC API on node A and submits a command on behalf of Alice

3) node A goes offline before I receive a completion response

4) My application automagically connects to node B and needs to know if the command submitted against Node A actually hit the ledger

If I re-connected back to node A, I would simply use the last known offset and look for the command in the event stream to check. I do not believe I can use the offset from Node A when connecting to Node B and want to know how best to determine if I need to resubmit commands or not.

clasoncjDA commented 4 years ago

For clarity, need to documentation on how to handle the two cases:

1) Nodes are part of the same logical node group and provide consistent offsets across nodes

2) Nodes are not part of a logical group and do not guarantee consistent offsets.

piyushbedi-da commented 4 years ago

@clasoncjDA is this assigned to anyone?