@Horusiath related to persistence and async. Fact that Persist is not returning a task I can solve myself, but I notice some internal behaviour and that is that Persist method is blocking processing next messages until event gets stored and then first calls the handler. And that the event of having stored the event is also passed back to inbox and gets processed before other messages. This makes that Persist can provide async behaviour for the saving of the events but only if the inbox does not get blocked (becomes relevant later). I think this means I cannot process my message with a async function (meaning having a function that does other async behaviour besides the Persist method. So If I would have an async method then my mailbox gets unlocked after first async method being called and then other messages gets processed which is not what we want because of the "single execution stream model". I looked at how ReceiveActor was handling this case, and it used "ActorTaskScheduler.RunTask" to execute some async method. Internally this method locks the inbox processig until the async method stops. When using this technique (ActorTaskScheduler) actor stopped processing, probably because of the locked inbox and not able to process to event notifying that event has been saved. So only way I see to resolve this is by having Persist using async or having the Persist method another way in , so it gets not blocked? Other suggestions are welcome or if something is not clear please let me know. The summary is I think that async methods are not supported when using Persistence ?