It seems like the sample uses something similar to Orleans. There is an erlang implementation of this general idea of a virtual actor as well, called erleans. The building block of both is a so-called grain (more info on Introduction | Microsoft Orleans Documentation), which is (in my understanding) just a process whose state can be persisted to DB, stopped, and restarted at a later point in time.
It seems that what the sample app wants is to have some sort of a reverse hierarchy of these grains that wake up on incoming transactions, execute them, and “pass it up” to a parent process (possibly starting it) and go back to sleep with some updated state.
It’d be harder to do in plain elixir unless it’s ok to have all processes running all the time, even when there are no transactions to process.






















