Definitions

Application Server

(e.g. Synapse, Fediverse Server, …)

This is the server that hosts the application.

End User Application

(e.g. FluffyChat, Fedilab, Tox Push Message App)

This is the application used by the end user to connect to the Application Server and to interact with it.

Push Message

This is the content that the Application Server wants to send to the end user Application.

Push System

This is the whole system used to deliver the push messages from the Application Server to the end user Application.

Application Push Protocol

Or Application Server Protocol (e.g. Matrix push gateway api)

This is the protocol the Application Server uses to send push messages.

Push Gateway

Or Gateway

(e.g. UnifiedPush-common-proxies, Nginx)

The Push Gateway is used for conversion and/or proxieing of messages from Application Server to the Push Provider. If the Application Push Protocol and the Provider Receiving Protocol are the same, and the Application Server can reach the Push Provider, then the gateway is not necessary.

If the application server can not reach the push provider the Push Gateway can also act as a normal Proxy, even if the application push protocol and the Provider Receiving Protocol are the same.

Provider Receiving Protocol

This is the protocol the Push Provider uses to receive push messages.

Provider Push Protocol

This is the protocol the Push Provider uses to send push messages to the Distributor Application.

Distributor Receiving Protocol

This is the protocol the Distributor Application uses to recive push messages from the Push Provider. So it is the same as the Provider Push Protocol, except if the Distributor Application acts as the Push Provider, then there is no Provider Push Protocol and this is just the Provider Receiving Protocol.

Rewrite Proxy

If the Provider Receiving Protocol needs anything else than the URI and a GET parameter to identify the end user application (eg. header, POST parameter) or need a special structure for POST data, then a rewrite proxy is used to convert the identifier in a URI or in a GET parameter and to forge the POST parameter content structure.

The rewrite proxy is application independant and provider dependant.

Push Provider

Or Provider

Or Push Notification Provider

(e.g. Gotify, Google FirebaseCloudMessaging)

This is the server that listen for incoming push messages using its Provider Receiving Protocol and forwards it to the connected Distributor Application using the Provider Push Protocol .

Distributor Application

Or Distributor

(e.g. Gotify-UnifiedPush-android, UP-FCM Distributor)

This is the application that forwards push messages to the registered end user Application. It is the application which is connected to the Push Provider.

Connector Library

Or Connector

(e.g. the UnifiedPush Libraries (Android, Flutter…))

This is the library used by the end user Application to register for and recive forwarded push notifications at the Distributor Application.

Endpoint

This is the URL of the Rewrite Proxy (if there is one, otherwise it is from the Push Provider) where push messages are sent to for a specific end user Application, from the Push Gateway.