In Javanese, "ngendika" means "said". i.e: "Ibu ngendika kowé kudu sekolah." in English: "Mother said you must go to school."
Ngendika is a multi-tenant, scalable, and high-performant Push Notification Server.
During my professional career as Software Engineer, I always found that company tend to write their own Push Notification server. Some companies may write only single use case Push Notification server, so when another application wants to send PN, it must spin up another server to handle PN. This because different application/service has different FCM Server Key, APNS key, e.t.c. Some companies don't use separate PN server, so every PN will be handled by the application itself.
Then, why don't we create one PN service that can be used by any service? In this "Ngendika" we don't need to separate PN Server to handle development and production, because we will see this Ngendika to be used by SaaS company where their client can test their application using Dev or Prod APNS certificate (FCM don't distinguish this). Or in simply, we can assume that this "Ngendika" is the 3rd party SaaS service that deployed on-premises in your service architecture.
- Download pre-built binary from Release Page.
- Create PostgreSQL version 12+ database.
- Prepare Redis instance.
- Copy config on
config.sample.yaml
toconfig.yaml
and modify the value. - Run migration by running
ngendika -c config.yaml migrate appRepo up
in terminal. - Hit the API using Postman.
- FCM Multicast using new API
- FCM using Legacy Message Payload
- APNS both dev and production
- Webhook HTTP