This was used in the in-memory event log for synchronization.
However this is only used and useful in the ephmeral instance, and I
don't think the in-memory event log needs to be thread-safe.
Theorectically someone could invoke execute pipeline in two different
threads sharing the same ephemeral instance, but I think that is quite
If we feel strongly that the in-memory case should remain thread safe
(e.g. with an threaded executor) we can add some synchronizsation
primitives to this