Transitions from one state to another

If each of the CRDT operations (policy and document) allows to compute its validity at any time, it assumes the complete graph traversal, and does not store the result of the evaluation to perform actions resulting from a change of this state. We therefore propose a mechanism to keep track of validity changes during the integration of operations of the CRDTp. In particular, it makes it possible to know for which operations of the CRDTd it is necessary either to generate the inverse operation (in the event of transition from a valid state to an invalid state), or to apply the effect (in the event of transition from an invalid state to a valid state).

To this end, we store validity results and transitions (deviations from stored validity) for every operation. The user decides when to effect the transitions, and to this end can query which document transitions exist, as they can be computed from stored policy transitions.

  • 1 akin to cache, except this store is not cleaned after every policy operation addition, but after every transition has been effected

  • changed
    last
    isValid(document)
    isValid(policies)
    intervals
    policy transitions
    document transitions
    last effected validity

    Let us take the example of a cancelled operation after a policy change:

    Site1Site2Site3op1+S2{W}op2Write()effect(op2)_op2op3-S2{W}inverse(op2)inv_op2

    inv_op2 supposes knowledge of a transition.