Architecting a scalable notification system for mobile devices
Push notifications have become a crucial tool for enabling instant communication between applications and users. With the increasing popularity of mobile and web applications, the demand for efficient and scalable push notification systems has grown significantly. Existing push notification systems face challenges, particularly in handling large user bases and managing high message volumes, while ensuring reliable and timely message delivery. Delyed message delivery or even message loss negatively impact the user experience and have to be avoided.
This thesis seeks to design a robust, efficient and scalable push notification system capable of handling message loads of up to 500.000 messages per minute with up to 1.000 connected mobile devices. The system needs to ensuring message delivery reliability, minimize delivery delay, and maximize throughput. Challenges to be adressed are the handling of back pressure, the design of suitable message queues and the sequenzing and prioritization of large volumes of messages. To achieve this, the thesis will explore techniques such as message batching, rate limiting, and load balancing.
The objective of this thesis is the creation of a solution or the combination of existing techniques to solve the problem of handling large volumes of push notifications efficiently and with minimal message loss through a scalable notification system and architectural requirements as described above. This comprises the analysis of the state of the art of existing push notification platforms and optimization techniques as well as the demonstration of the solution by implementation and a suitable experimental evaluation comparing the new system with a real baseline with regard to relevant performance and quality metrics.