169
edits
m (→Terminology) |
|||
| Line 105: | Line 105: | ||
[[Image:PN-HighLevelCommLines.png|thumb|250px|High-level overview of the lines of communication between the entities in the system.]] | [[Image:PN-HighLevelCommLines.png|thumb|250px|High-level overview of the lines of communication between the entities in the system.]] | ||
[[Image:PN-HighLevelNotifFlow.png|thumb|250px|Overview of how notifications travel from web apps to clients.]] | |||
* '''User''': Individual who receives notifications. | * '''User''': Individual who receives notifications. | ||
* '''Client''': One of possibly many devices a user wishes to receive notifications on, e.g. a browser, mobile phone, feather duster, etc. | * '''Client''': One of possibly many devices a user wishes to receive notifications on, e.g. a browser, mobile phone, feather duster, etc. | ||
* '''Web App''': Third-party web application that actually produces the notifications. The user subscribes to notifications from this app via a web page. | * '''Web App''': Third-party web application that actually produces the notifications. The user subscribes to notifications from this app via a web page. | ||
* '''Message Broker''': Handles the sending and receiving of messages. See [http://www.rabbitmq.com RabbitMQ] for more information. | |||
* '''Agent''': Responsible for all REST-API calls, this handles the creation of any messages within the message broker on behalf of web apps, and handles the creation of exchanges and queues on behalf of clients. | * '''Agent''': Responsible for all REST-API calls, this handles the creation of any messages within the message broker on behalf of web apps, and handles the creation of exchanges and queues on behalf of clients. | ||
* '''Subscription''': Represents the relationship between a web app and a user who wishes to receive notifications from said web app. A subscription consists of the "link" that allows the web app to send notifications to the user. | |||
* '''Routing Key''': A unique identifier generated by the Agent when a user subscribes to notifications from a web app. The routing key is used as a "mailbox address" by the web app to send notifications to the user. | * '''Routing Key''': A unique identifier generated by the Agent when a user subscribes to notifications from a web app. The routing key is used as a "mailbox address" by the web app to send notifications to the user. | ||
* '''User Exchange''': Entity within the message broker where all messages destined for a particular user are sent. | |||
* '''Client Queue''': Entity within the message broker where all messages destined for a particular client of a user are sent (note there is a 1:1 relationship between the number of clients and their respective queues, but a 1:n relationship between a user and all its clients). | |||
== Server API == | == Server API == | ||
edits