Last week, while at Apps World, one of the most common questions that we were asked was ‘You’re called Push Technology, so do you just do push notifications?’. As Apps World is an expo for multi-platform developers, this is an understandable assumption to be made. But the answer is no, our technology, Diffusion, is an intelligent data distribution platform that does much more than push notifications. To illustrate this, first let’s explain push notifications.
Push notifications let your application alert a user of new messages, content updates or events that may be of interest to them, even though they are not actively using the application. This is what happens when you receive a WhatsApp message or a Facebook notification on your smartphone.
Taking iOS as an example, a notification is a short message consisting of two pieces of data, the device token (which is analogous to a phone number) and the payload. Your service creates the notification and passes this to the Apple Push Notification Service, which in turn pushes the notification to the device. This architecture is outlined in the image below.
This has some similarities to Diffusion. Firstly, data is pushed to the device, rather than fetched at pre-defined intervals. Also it is not necessary for your service to know the current IP address of the phone, and it will deliver the notification regardless of what type of network the phone is connected to (Wifi / 3G / 4G).
However this is where the similarities end.
One of the most notable differences is the fact that Diffusion communication is bi-directional, therefore allowing the client to send messages back to the server. This enables your services (which can also be clients) to receive messages from clients as well as publishing messages to them.
Also, Diffusion can handle any type of data for any purpose. In fact, there are no restrictions regarding the type of data that Diffusion sends, or how that data is used. The information sent can be used to power your service itself rather than just notifying users to events occurring while not using the application. Diffusion conceals the complexities of transporting data to and from a client, regardless of the type or platform of device or reliability of the network, all you need to do is provide the data at each end.
Another major advantage to Diffusion is how it handles fast changing data. The frequency of push notifications received by a client can be measured, at the most demanding level, in minutes. Diffusion on the other hand has been designed to handle messages sent at a frequency of single milliseconds without adding load to your service. Imagine using push notifications for data that changes even as slowly as every few seconds. This would be extremely resource intensive for both the server and the client – this is the exact problem that Diffusion solves.
The final major difference worth outlining is how Diffusion enables you to distribute your data efficiently. With push notifications each message has a single recipient. If there are 100 devices that are to receive the same notification, your service is required to create 100 individual messages – a highly inefficient process, with limited prospect to scalability. Diffusion follows a publish and subscribe model. Thousands of clients can express interest in a particular topic and then receive all published messages. Therefore with one message from your service, all the subscribed clients will be updated, drastically reducing the demands on your service. The architecture is outlined in the image below.
Using Diffusion allows you to increase the responsiveness of your whole service. The advantages of Diffusion over push notifications alone can be seen here: