AS described in the parent issue , we currently use `ApplyMessage` which does not use a transient storage between transactions to maintian log ordering This should be changed , we can use a mechanism similar to `ApplyTransaction` used by cosmos