Summary

(1) A reactive application is non-blokcing & event-driven top to bottom
(2) Actors are run by a dispatcher (potentially shared) which can also run Futures
(3) Prefer imuutable data structures, since they can be shared
(4) Do not refer to actor state from code running asynchronously
(5) Prefre context.become for different states, with data local to the behavior