• Isolate dependencies
  • Run the application as one or more stateless processes
  • Develop in order to enable horizontal scalability
  • Externalize state