@calummoore, thanks for the feedback on the docs, I’ve updated them to be a bit clearer.
To quickly answer your questions though (look at the now updated docs for more details):
Does that mean we now run 2 x HTTP calls in order to run any mutation?
Normally yes, although you can get around this by using the X-Dgraph-CommitNow header.
I think this means copy the clients lin_read into the transactions lin_read.
Correct.
But what should the initial client lin_read be?
It should be initially empty.
Do I ever update it independently (e.g. add a new item to the map), or should I only ever merge from a response?
Only from a response.
Ok, so when I get a lin_read back from a mutation, then I merge it with the clients lin_read?
Correct. lin_read maps from all mutations should be merged with the client lin_read, and also with the lin_read for the transaction the mutation was part of.
Ok, do you want me to do anything with that?
Nothing at all. The statement about commit_ts is probably not useful, so I’ve removed it.