run makes sure we only process 1 message at the same time, avoiding mutexes and race conditions.
()
source not stored for this graph (policy: none)