WebAPI/Push/Requirements
Jump to navigation
Jump to search
Push Project Requirements
No open TCP sockets- In order to reduce network load, clients should not be required to hold a TCP socket open in order to receive notifications.
Network operators should be able to use UDP broadcast (or other standarized mechanism, like WapPUSH, SMS) to 'wake up' client who then should establish a TCP connection to Push Server.
- No continuously open TCP sockets on mobile devices (previous requirement obsoleted by WebRTC new server initiated connection requirement)
- Connection between provider proxy to the Push server and the device will be determined by the provider.
- Provider must allow proxy to hold open a proxied socket to the Push Server, and must relay served notification alerts to devices in a timely manner.
- Multiple connections (signal versus signal+data)
- Push system should not require a second TCP connection for data/notification fetching
- Mozilla believe that this may be a premature optimization.
- Push system should not require a second TCP connection for data/notification fetching
- Easy-to-use API
- A design goal for *all* web apis.
- Default should be safe, and ensures end to end privacy of data
- Must not require applications to do their own crypto
- Guaranteed delivery
- Push system should guaranteed a timely delivery of notification
- Push system should be able to recover from data center loss
- Data privacy
- Push server should not be able to inspect application private data
- No disclosure of personal identifiable info to application (e.g. MSISDN)
- Push system scalability
- Push system must be able to be scaled to tens of millions.
- Order of mag smaller than apple or android's system.
- System must be allowed to support multiple (and possibly federated) push servers
- Push system must be able to be scaled to tens of millions.
Nice-to-have features:
- Multicast notifications (e.g. all instance of the same user), broadcast (e.g. all instances of the app) through a single request from app server to the push server
- Special type of notifications with real-time requirements (e.g. notification of an incoming VoIP call) which are delivered with minimized delay.
Non Goals: