Хорошо, так это то, что я нашел до сих пор
1- транзакция должна быть детерминированной, это означает, что значение, которое она записывает, зависит только от значения, которое она читает, ей не разрешено читать время настенного времени или генерировать случайное число ...
2 - чтобы поставить транзакцию в очередь на выполнение, вам необходимо определить полный набор ключей, которые будут считываться и записываться; ключ, к которому будет произведено прикосновение, не может динамически зависеть от значения, прочитанного во время выполнения транзакции.
Таким образом, как только транзакция будет поставлена в очередь, все разделы будут обрабатывать ее в том же порядке относительно другой транзакции (транзакции заказа находятся в очереди), и все работники, ответственные за часть ключа, касающегося этой транзакции, могут быть определены статически.
Как только все эти работники достигают этой позиции транзакции в очереди, они сначала выполняют всю операцию чтения и отправляют прочитанное значение всем работникам, которые выполнят хотя бы одну запись. Затем все работники, которые отвечают за хотя бы одну запись, готовят запись локально и сообщают, следует ли откат транзакции всем другим узлам. Если все узлы согласны зафиксировать все рабочие, то передайте локально подготовленные записи.