If two transactions are completely identical in terms of their content, then this means they will have the same transaction ID (txid). In that case both transactions will work on the separate nodes, and everything will be fine when the nodes become reconnected to each other, since they are already in consensus in terms of the transactions that have taken place.
However just sending the same quantity from the same source to the same recipient doesn't guarantee identical transactions, because there is the issue of coin selection – which previous unspent transaction outputs are used as inputs for the new transaction. Three things can happen here:
- Identical inputs -> identical transactions -> no problem (one payment under consensus)
- Completely different inputs -> two different transactions -> both will happen (duplicate payment)
- Partially overlapping inputs -> transaction conflict -> only one will be accepted (one node will see its transaction rejected by the blockchain as a double spend)
In practice you should find that two MultiChain nodes which were in sync then became disconnected will make the same choice of previous unspent transaction outputs. However this is not guaranteed in terms of what we document in the APIs, so you shouldn't rely on it in the long term.
Instead, we would recommend using manual coin selection to build the transaction, using your own rules regarding which unspent transaction outputs are used as inputs. That gives you full control and a guarantee that the same coin selection process is being applied on both nodes.
The relevant APIs for this are listunspent + createrawtransaction + appendrawchange + signrawtransaction + sendrawtransaction.