Order of Transaction Hooks invocation

Hello everyone,

Checking confd documentation it is not clear to me the order in which transaction hooks are invoked. Suppose the following yang:

container MyContainer {
    list myList {
        tailf:callpoint myListHook {
            tailf:transaction-hook object;
        }

        tailf:callpoint myListPerTransactionHook {
            tailf:transaction-hook object {
                tailf:invocation-mode per-transaction;
            }
        }
    }

    container MyInnerContainer {
        tailf:callpoint myInnerContainerHook {
            tailf:transaction-hook object;
        }
    }
}

Currently, what I can see is that all the necessary callbacks for myListHook are invoked first (create, remove, etc…). After that, the write_all callback for myListPerTransactionHook is invoked and the last hook to have its callbacks invoked is the myInnerContainerHook

Based on the previous information I have a couple of questions:

  1. Is this order always guaranteed?
  2. Is there a way to, somehow, assign priorities for the hooks?
  3. Can I trust that the hooks which implement write_all will be called last?
  4. Taking into consideration the myListHook, it would be possible to somehow ask for confd to invoke the remove callback first and the create callback last?

Thanks.