Every e-commerce app sends notifications: your order shipped, your payment failed, a flash sale started. This post designs one end to end, with a focus on the architecture.
The problem
An online shopping app has about 10 million customers. When something happens (an order is placed or shipped, a payment fails, a price drops), the customer gets a notification by push, email or SMS . Some are urgent (a login code), some are marketing (a flash sale), and users choose which kinds and channels they want.
Requirements
Question Answer
Types Critical (OTP, password reset, login alert, payment failed), order updates (confirmed, shipped, delivered, cancelled, refund), marketing (flash sale, price drop, back in stock, abandoned cart)
User choice Users choose kinds and channels. Critical cannot be turned off.…