Basic Design Tenets
- Scalability and elasticity are our main goals
- Any feature that limits our main goals must be optional
- Everything should be asynchronous a) If you can’t do something asynchronously, see No.2
- All required components must be horizontally scalable
- Always use shared nothing architecture (SN) or sharding a) If you can’t Share nothing/shard, see No.2
- Distribute everything a) Especially logic. Move logic to where state naturally exists.
- 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)
License: (CC 3.0) BY-NC-SA