Asynchronous Design

It's cleaner to structure code for asynchronous execution by design, instead of by evolution.

  1. Categorization -- group logic by resource access.
  2. Create information flow graph.
  3. Write code.