Assignment is not idempotent if you include ordering in the system.
These two operations have different results:
1. A=5
2. A=6
vs
1. A=6
2. A=5
In such scenarios, whenever an operation is performed, the assignment operator is no longer binary. You also need to include the ordering information (e.g. randomly generated) in the transaction, such as:
ASSIGN(0, A, 6)
ASSIGN(1, A, 5)
Then operations are performed in the order depending on the first value in the tuple.
As you can see, idempotency of assignment is only true if it's ordering value is the same.
These two operations have different results:
1. A=5 2. A=6
vs
1. A=6 2. A=5
In such scenarios, whenever an operation is performed, the assignment operator is no longer binary. You also need to include the ordering information (e.g. randomly generated) in the transaction, such as:
ASSIGN(0, A, 6) ASSIGN(1, A, 5)
Then operations are performed in the order depending on the first value in the tuple.
As you can see, idempotency of assignment is only true if it's ordering value is the same.