System Design Series : NFRs you must think !!!!

Non Functional Requirements you must think before you come up with any design -

  1. Scale - #scalability becomes very important when we are dealing with a problem statement where there is a substantial chance of spike or fall in traffic.
  1. Speed - Everyone wants speed but where you can draw the line. If it is a financial transaction or you are posting a photo, there is a difference. So draw that line.

  2. HA ( High Availability) - Will your system survive the H/W or network failures. Is there any SPOF ( Single Point of Failure)

  3. Consistency - Do you need to keep your services , your datastore - cache consistent.

  4. Cost - Do we have to focus on reducing cost of #development or cost of #maintenance .

Use #CAP theorem to chose 2 out of 3 ( C , A & P )

#scalability #design #processing #systemdesign #consistency