Golden Rules to answer in a System Design Interview
Rule 16 - If the system requires reducing server load and preventing DOS attacks, we should consider using a Rate Limiter
Rule 17 - If the system has microservices, we should consider using an API Gateway (Authentication, SSL Termination, Routing etc)
Rule 18 - If the system has a single point of failure, we should implement Redundancy in that component
Rule 19 - If the system needs to be fault-tolerant, and durable, we should implement Data Replication (creating multiple copies of data on different servers)
Rule 20 - If the system needs user-to-user communication (bi-directional) in a fast way, we should consider using Websockets