LLD interviews focus on designing classes, interfaces, and applying design patterns. Writing SQL queries is usually part of database or backend interviews, not LLD.
Books and Authors have an association relationship because a book can have multiple authors, and authors can write multiple books. Neither inherits from the other, and composition or aggregation do not fit well here.
Using a message queue helps to buffer and process notifications asynchronously, improving scalability and reliability. Other options either do not address concurrency properly or can cause bottlenecks.
While interfaces and abstractions improve flexibility, they can also make the codebase more complex and harder to read, which is a common tradeoff in design.
1 million users * 10 messages/minute = 10 million messages/minute. Dividing by 60 seconds gives about 166,667 messages per second.