Currently we have a system where users can be subscribed to thousands of topics across our expanding white labelled app network. A user on app1 can send a report through to our server that will need to notify multiple users across app1, app2, app3 if they are subscribed to the topic. We also have situations where a user on app1 needs to send a notification to users in an ad-hoc situation and so thousands of users from the various apps need to be subscribed to a topic and immediately sent that notification.
Currently our limitations are:
* Firebase - Is not usable on Harmony so we have to use two platforms to send requests for every notification request sent.
* Firebase - a user can only be subscribe to max 2000 topics, so those of our users that need to be subscribed to thousands of topics are reaching the limit.
* Firebase - only 1000 users can be subscribed per request to a topic, this slows down our ability to subscribe users to an ad-hoc topic and immediately send them a notification.
* Huawei PushKit - apps in the same project do not share a unified notification account. Each app has to have its own topic subscriptions and when a notification needs to be sent out, we have to duplicate the request and send one for every app instead of just sending a single notification to the topic for the project.
* Huawei PushKit - There is a 1 minute delay from the point at which a user is subscribed to a topic and to when they can actually start receiving notifications on that topic. Which prevents us from being able to subscribe users to an ad-hoc topic and immediately send them a notification.
Our requirements are:
* Have Push Notification support for all notification features of Android, Harmony, and iOS (Windows Desktop Browser/App Support is beneficial for future development)
* Be able to subscribe users to thousands of topics or send a single notification to thousands of users
* The ability to be able to create an ad-hoc topic to subscribe thousands of users to and then immediately send them a notification on that topic.
* Be able to assign multiple individual apps to a single notification project so that one request will send a notification to all relevant topics/users regardless of which app they are using.
* Notifications need to be near instant as some situations are considered emergency, and the notifications are also used in a chat environment so users need to be notified immediately.
* Local South African Servers would be preferential for speed of requests.
* When we mention thousands of users, in some situations this could even be tens of thousands depending on how populated certain app topics are.