How would you design a scalable notification system for a web application with retries, delayed delivery, and failure handling at Kairos?