How would you design a highly available notification system that can scale to send millions of real-time transactional alerts daily?