12 Meta Rules

  1. Understanding the problem domain is more important than understanding the solution domain
  2. Software development is “anything goes”
  3. The best software methodology is no methodology
  4. Small is beautiful
  5. Separate control plane from data plane
  6. Orchestrate applications using messaging
  7. Debugging a single-machine app is not the same as debugging a distributed system
  8. Leave building engines to the experts
  9. Programming is either push (reactive) or pull (imperative)
  10. Software is more about politics than it is about technology
  11. Scalability is all about idempotence via asynchronous upsert
  12.  Separate read from write