https://www.weblineindia.com/nl/blog/building-scalable-push-notification-system/