Low-Level Design rounds at Razorpay ask you to model a real backend component end to end — a logger, a message broker, an ATM — starting from requirement clarification, not a pre-agreed class diagram. Interviewers expect you to justify any design pattern you reach for rather than just naming one.
Design a logging system that supports multiple severity labels (e.g. info, warning, error) and routes each log entry to a different destination — console, file, or a web endpoint — based on configuration read at startup.
Requirements to clarify first
- Which severity labels must exist (debug / info / warning / error / fatal?) and is there a minimum level below which entries are dropped entirely?
- Can one log entry fan out to more than one destination (say, error goes to both file and a web endpoint), or is routing strictly one destination per level?
- Is the routing configuration fixed once read at startup, or should it be reloadable at runtime without restarting the service?
More verified Razorpay LLD prompts will be added here as additional candidate reports are reviewed and confirmed.

