Jump to: navigation, search

Difference between revisions of "BasicDesignTenets"

m (Text replace - "__NOTOC__" to "")
 
(2 intermediate revisions by one other user not shown)
Line 1: Line 1:
__NOTOC__
+
 
 
== Basic Design Tenets ==
 
== Basic Design Tenets ==
 
# [[Glossary|Scalability]] and [[Glossary|elasticity]] are our main goals
 
# [[Glossary|Scalability]] and [[Glossary|elasticity]] are our main goals
Line 10: Line 10:
 
# Distribute everything
 
# Distribute everything
 
#* '''a)''' Especially logic.  Move logic to where state naturally exists.
 
#* '''a)''' Especially logic.  Move logic to where state naturally exists.
# Accept eventual consistency and use it everywhere you can.
+
# Accept eventual consistency and use it where it is appropriate.
 +
# Test everything.
 +
#* '''a)''' We require tests with submitted code. (We will help you if you need it)

Latest revision as of 23:29, 17 February 2013

Basic Design Tenets

  1. Scalability and elasticity are our main goals
  2. Any feature that limits our main goals must be optional
  3. Everything should be asynchronous
    • a) If you can't do something asynchronously, see #2
  4. All required components must be horizontally scalable
  5. Always use shared nothing architecture (SN) or sharding
    • a) If you can't Share nothing/shard, see #2
  6. Distribute everything
    • a) Especially logic. Move logic to where state naturally exists.
  7. Accept eventual consistency and use it where it is appropriate.
  8. Test everything.
    • a) We require tests with submitted code. (We will help you if you need it)