• Least abstract to most abstract

    • Entities
    • Domain logic
    • Business logic
    • Code with side effects
  • Code can only depend upon code which is more abstract

  • Controllers return actions which are values
  • Actions are interpreted by the reducer
  • Actions are carried by reactive streams