Easily build complete, trusted realtime functionality.
Take our APIs for a spinDisclaimer: All information is as accurate as possible as of publishing, January 2019. It’s worth noting that the information presented in this article has been gathered based on documentation and resources freely available online from Realtime.co and Push Technology. Be sure to double-check anything before you make any decisions. If you do find anything incorrect or out of date then please let us know.
That said, the aim is to help you make a more informed decision when it comes to choosing a realtime data streaming or messaging platform. We’ll cover a set of questions we think are essential to ask of any realtime data streaming platform.
Realtime.co and Push Technology are realtime messaging platforms offering high-throughput and realtime data delivery between online networks of users and services. Like all platforms there are pros and cons of each.
Contents
- Is it fast, reliable, and redundant?
- What’s the level of platform interoperability?
- How easy is it to get started and then scale up?
- How does the platform handle realtime connectivity?
- How mature is the feature set?
- Does the platform offer realtime API Management tools?
- How secure is the platform and the way it does things?
- How responsive and helpful is support?
- How clear, flexible, and scalable is the pricing structure?
To help you answer the questions above in relation to Realtime.co and Push Technology we’ve done our best to perform an unbiased, high-level comparative analysis of both platforms.
Is it globally fast, reliable, and redundant?
Before considering anything else you need to trust your realtime provider can deliver a stable and reliable service that’s easy to implement.
Information provided is from publicly available sources and is intended as a starting point for further investigation. See full disclaimer.
Reliability | Realtime.co | Push Technology |
---|---|---|
Latency of response times | No data available. | Varies between 100ms-250ms+. Check status site for current latencies. |
Uptime SLA | 100% SLA uptime guarantee for enterprise customers. | Unclear. SLAs offered but no mention of uptime guarantees. |
How many globally distributed datacenters? | 3-6 datacenters across Europe, US East, US West | According to the status site Push Technology has at least 3 datacenters across Europe, US, Australia. |
Mesh architecture with no central point of failure | Unknown. | Unknown. |
Data replicated in multiple regions | No support. | Supported on specific plans |
Quality of Service and message delivery guarantee (never lose data during brief disconnections) | Limited support. | No support. |
The comparisons presented here are: (i) derived from public information and open sources available as of January 2019, and thus may be outdated; (ii) intended as a starting point for further investigation; and (iii) not guaranteed to be 100% accurate or complete. The reader is encouraged to conduct an independent evaluation and to not rely solely on the information presented here. Please contact us if you believe the information here is inaccurate or incomplete.
What’s the level of platform interoperability?
The modern internet is a web of different languages, platforms, open and proprietary protocols, and services built on top of other services. This isn’t likely to change anytime soon so a platform that supports widespread interoperability is essential in the long-term. There are three questions to help assess how interoperable a platform is:
- How extensively does the platform support different languages, frameworks, and protocols?
- How easy is it to migrate to or move away from the platform?
- Are there protocols for streaming data into third party platforms?
Information provided is from publicly available sources and is intended as a starting point for further investigation. See full disclaimer.
Interoperability | Realtime.co | Push Technology |
---|---|---|
Support for native client libraries/SDKs | Quite extensive support with ~25 SDKs across both Realtime.co’s realtime messaging and storage products. | Limited with only six SDKs covering the most popular platforms/languages (JavaScript, Apple, Android, .Net, C, Java). |
Support for open source and proprietary protocols (e.g. MQTT, AMQP, STOMP) | No support. | No support. |
Migration and lock-in | Does not support proprietary realtime vendor protocols, making it harder to migrate in and away. | Does not support proprietary realtime vendor protocols, making it harder to migrate in and away. |
Coverage of various languages, frameworks, protocols and transports, including MQTT | No support. | Supports Kafka. See GitHub. |
The comparisons presented here are: (i) derived from public information and open sources available as of January 2019, and thus may be outdated; (ii) intended as a starting point for further investigation; and (iii) not guaranteed to be 100% accurate or complete. The reader is encouraged to conduct an independent evaluation and to not rely solely on the information presented here. Please contact us if you believe the information here is inaccurate or incomplete.
How easy is it to get started and scale up?
We all want to work with platforms and technologies that are easy to understand, implement, and then scale. When it comes to realtime platforms you can get a good feel for this by looking at:
- The user-friendliness of the API
- The documentation
Is the API easy to use?
Looking at the official Node.js Client, this section compares ease of publishing.
Is the API easy to use: Getting set up with Realtime.co
var ortcNodeclient = require('ibtrealtimesjnode').IbtRealTimeSJNode;
// Create Messaging client
var ortcClient = new ortcNodeclient();
// Set Messaging client properties
ortcClient.setConnectionMetadata('clientConnMeta');
ortcClient.setClusterUrl('http://ortc-developers.realtime.co/server/2.1/');
ortcClient.onConnected = function (ortc) {
// Messaging client is connected
ortcClient.subscribe('myChannel', true,
function (ortc, channel, message) {
// Received message: 'message' - at channel: 'channel'
});
};
ortcClient.onSubscribed = function (ortc, channel) {
// Subscribed to the channel 'channel';
// Sending HelloWorld message
ortcClient.send(channel, 'Hello World');
};
ortcClient.connect('[YOUR_APPLICATION_KEY]', 'myAuthenticationToken');
Is the API easy to use: Getting set up with Push Technology
var diffusion = require('diffusion');
diffusion.connect({
host : 'hostname',
principal : 'control',
credentials : 'password'
}).then(function(session) {
console.log('Connected!');
// add a topic
session.topics.add('json', diffusion.topics.TopicType.JSON);
// Update topic with JSON data
session.topics.update('json', '{"foo": bar}');
//subscribe to the topic
session.subscribe('json').asType(datatype).on({
value : function(topic, specification, newValue, oldValue) {
console.log(JSON.parse(newValue.get()));
},
});
});
Which API is best?
Both Realtime.co and Push Technology APIs are easy to use. They’re simple and self-explanatory, getting you up and running in a relatively short time.
Is the documentation any good?
Documentation is the bedrock of understanding and using software, especially for such complicated and essential functionality as realtime messaging. Nowadays this is a really low bar but far too many services still have minimal, incomplete, or no documentation at all. Clear and succinct documentation is usually a good indication that the service is well-designed and you’ll be able to find the information you need. And if they’re using the OpenAPI Specification then that’s a good sign too.
So how do Realtime.co and Push Technology stack up? Both do quite well with fairly extensive documentation across quickstart guides, SDKs, and docs explaining some of the core features of their respective platforms such as ‘presence’ and ‘topics’. That said, Push Technology has the edge with clearer, more current, and a wider variety of documentation.
NOTE: at the time of writing (the end of January 2019) it looks as if the Realtime.co documentation is quite out of date, with the most recent update on January 2nd 2018. This is a red flag because it suggests the product is no longer in active development or being maintained. In contrast, Push Technology’s last update was January 10th 2019. That’s over a year’s difference.
Connectivity and transport
How your data/messages are transported changes the speed of delivery and fundamentally impacts your product or service. A realtime platform provider should always choose the best transport available based on the browser and connection available. The client library should prioritize transports in this order:
- Websockets
- XHR streaming
- XHR polling
- JSONP polling
Both Realtime.co and Push Technology support the full range of transports.
How mature is the feature set?
It takes non-trivial engineering effort to adopt a realtime data streaming platform and integrate into your application or service. It’s natural you’ll want to make sure the platform you choose has a mature and full feature set that provides the basic the functionality you’d expect from a realtime platform, provides the features you need right now, and has the functionality to support you as you grow and your needs change.
Below is a feature matrix with a set of standard features you’d expect to see on offer from an established realtime data streaming platform. Realtime.co and Push Technology are compared side by side against these features.
Information provided is from publicly available sources and is intended as a starting point for further investigation. See full disclaimer.
Features | Realtime.co | Push Technology | Why does it matter? |
---|---|---|---|
Realtime data streaming | Yes. | Yes. | |
Message and worker queues | No. | No. | Message queues that provide a reliable and straightforward mechanism to consume, process, store, augment or reroute data efficiently from a realtime platform. |
Webhooks | Yes. | No. | Webhooks provide a means to get messages, channel lifecycle and present events pushed to your servers over HTTP. |
Serverless cloud function invocation | Partial. Recommends using a generic Webhook to deliver to an API Gateway that then triggers a function. | No. | Trigger serverless functions on third platforms like Amazon Lambda, Microsoft Azure or Google Function. |
Presence | Yes. | No. | Subscribe to events when users or devices enter or leave channels/topics. |
Message history | Partial. Up to 128 messages can be retained for up to 60 seconds. Although this is disabled by default. | Partial. A fixed number of messages can be retained for a small amount of time. A NoSQL cloud database with built-in real-time notifications keeps data synchronized between users. | Dictates whether clients can access historical activity, catching up on missed messages. |
Realtime data firehose | No. | No. | Stream your realtime data published within a realtime platform directly to another streaming or queueing service such as Amazon Kinesis, Apache Storm or Kafka. |
Native push notifications | Yes. | Yes. | Send notifications and updates to users even when they are offline. |
Announcement channels | Yes. | Yes. | Stay updated on what’s happening on the client’s end, connection, disconnection etc. |
Reliable message ordering | No. | No. | Ensures messages are delivered to persistently connected subscribers in the order they were published on each channel/topic. |
Conflation | No. | Yes. | Ability to reduce the amount of information sent to clients by combining or discarding updates. |
The comparisons presented here are: (i) derived from public information and open sources available as of January 2019, and thus may be outdated; (ii) intended as a starting point for further investigation; and (iii) not guaranteed to be 100% accurate or complete. The reader is encouraged to conduct an independent evaluation and to not rely solely on the information presented here. Please contact us if you believe the information here is inaccurate or incomplete.
As the matrix shows, both platforms offer a good level of realtime messaging functionality. But they also offer some additional help for developers when it comes to doing the technical heavy lifting. However, both could offer more on that front as features like serverless functions, reliable message ordering, and message queues are missing. With serverless compute, functions, and event-driven architecture becoming more integrated into our software design these omissions should weigh heavily in your decision.
While on the surface it may look as if Push Technology has fewer features than Realtime.co, they both offer similar functionality. And one could argue that those features Realtime.co does offer that Push Technology doesn’t aren’t in the best of shape.
That said, each clearly has different offerings with their own strengths and weaknesses. So, as stated before, using this feature matrix as a guide, check the platform functionality in relation to your own specific requirements.
Does the platform offer realtime API Management tools?
The demand for realtime apps and experiences is exploding, which is probably why you’re reading this vendor comparison. Current realtime data streaming providers can give you the much-needed core transfer infrastructure for realtime data – but they put the responsibility for managing realtime APIs back onto you, which can get messy and why we all use REST API management tools nowadays.
A couple of extra considerations when you’re choosing a realtime data streaming platform:
- In addition to the realtime streaming infrastructure, does the platform provide the operational tools you need to stream, manage, and exchange data in realtime? For example, analytics, developer portals, and rate limiting tools.
- Is end-to-end data delivery supported – from source to subscriber? This might be sending data straight from an IoT sensor to a smartphone, without needing to pass through your own servers first.
A globally distributed data stream network providing an all-encompassing platform with everything you need to build the realtime experiences is the future. Just something to think about.
How secure is the platform and the way it does things?
Security and encryption are front of mind and any realtime platform will have robust security built into their design and delivery. A good general checklist for security is:
- TLS connection to ensure all data in transit are encrypted
- Token-based authentication (including JWT support), which ensures your private key is never shared and instead a short-lived token is used to authenticate
- Configurable private key permissions to restrict channels/topics or operations
- Encrypted message payloads to enhance security and privacy of all messages
Realtime.co
Realtime.co provides security through an authentication process. To authenticate a user you send a token to the server which grants the authenticated user read/write permissions to a specific channel. The limit is 100 authenticated channels per user token. Realtime.co also supports using TLS for stronger security. To use this type of connection you simply replace the path /server/2.1 with /server/ssl/2.1 in your Realtime Messaging Cluster URL, as shown below:
https://ortc-developers.realtime.co/server/ssl/2.1
Push Technology
Push Technology is secured using a role-based model where permissions control actions performed on the server by client sessions. They offer a Unified API AuthenticationControl feature which allows a control client session to authenticate other client sessions. This is done by sending a principal and a password to the server, which is either granted or denied.
All Push Technology transport protocols support TLS. To ensure passwords and session tokens are not transferred in the clear, TLS is recommended to protect all communication with the server.
How responsive and helpful is support?
Even if a platform or product is well-designed and the docs are strong, the nature of software and complex infrastructure means you’ll inevitably need to talk to a human at some point. Whether it’s about pricing, implementation, or a bug – support is a fact of building stuff on the internet. So it’s essential you can rely on responsive, helpful support.
Good indicators are short response times across live chat and email, access to people who understand the nitty gritty technical details of the platform, and an up-to-date support portal for docs. An active community with forums or a group chat can also be a good sign.
Realtime.co’s support
In all honesty, Realtime.co is pretty light on the level of support it offers:
- None of the pricing tiers mention anything about support
- There’s no live chat
- Email support didn’t respond
- There’s no obvious community support
And, as of late January 2019, the support page/documentation returns a 404 error from Intercom. It’s not clear whether this is a temporary issue or not. But combined with out of date documentation, it doesn’t bode well if you’re trusting the integrity of your realtime service to Realtime.co.
Push Technology’s support
Push Technology has everything you’d expect:
- A dedicated support center
- Intercom for live chat
- Email support
- New community-based support using Stack Overflow
However, if you need more extensive support you’ll need to buy a support package. This comes in two flavors.
We can’t comment on the access to engineers for deeply technical support. It’s also worth noting it looks like there’s only a single person manning the live chat.
When it comes to support, Push Technology is the clear winner.
How clear, flexible, and scalable is the pricing structure?
Pricing for realtime platforms should be flexible and scalable. Rigid pricing tiers with fixed quotas on messages and concurrent connections often result in huge price jumps when you hit arbitary limits. It can even impact on your service availablity if the realtime provider locks you out once you hit your limits. This can be a huge pain when you’re trying to grow your business or have a service with unpredictable spikes. And it often works against you when you want to scale up capacity because the price changes are so dramatic. Not good.
When it comes to testing the service out, a generous free tier is helpful as it enables you to do some real stuff with your service and properly evaluate whether the provider can deliver what you need.
Both Realtime.co and Push Technology offer free and paid versions.
Realtime.co
Realtime.co offers self-service pricing options for up to 25,000 simultaneous connections and 251 million messages inclusive. More than that and you’ll need to get in touch with them and get yourself a tailored package (good luck).
Push Technology
Push Technology takes a different approach: a limited self-hosted version and a cloud version.
Both platforms charge roughly ~$1 per million messages sent outside of your agreed limits.
To better understand the pricing models and what you get let’s look at some examples.
Example one
A chat application with 100,000 users/month, each averaging two ten-minute chat sessions with 20 messages averaging 1KB in payload in each direction between customer and operator. The application has around 3,000 concurrent users at any one time.
For Realtime.co, the app would result in the following:
- 20 messages * 2 sessions * 100,000 messages = 4,000,000 messages
- Total cost = $30
This would be covered under the $30/month plan as it can take 3,000 concurrent users and 31 million messages a month.
For Push Technology, the app would result in the following:
- 20 messages * 2 sessions * 100,000 messages = 4,000,000 messages * 1kb data = 4GiB
- cost of data = 4GiB * $1 = $4
- Total cost = $75 + $4 = $79
3,000 concurrent users would be covered on the $75/month plan but data for messages would be charged extra.
Example two
This one’s an app where you can hail cabs with your smartphone. When you request a ride the backend checks which drivers are online by using the `here_now()` call. Online drivers are alerted and accept a trip. Once matched, the driver’s location is published twice per minute to the user. An average ride lasts 15 minutes. There’s an average 100 concurrent connections and 30 rides a day.
For Realtime.co, this would result in the following:
- 100 concurrent connections
- 30 messages publishing and receiving latitude/longitude from driver to rider = 31 messages * 30 rides = 910 messages per day * 30 = 27,300 messages per month
- Total cost = $30
For Push Technology, this would result in the following:
- 100 concurrent connections
- 30 messages publishing and receiving latitude/longitude from driver to rider = 31 messages * 30 rides = 910 messages per day * 30 = 27,300 messages per month at average of 1KiB / message = 0.0273 GiB
- Total cost = $35 + $0.013718593 = $35.013718593.
Note that for Push Technology this would actually be covered under the free plan.
Who’s behind the platforms?
It’s good to know who’s behind a company when you’re relying on them for such an essential service. Do they have a proven track record? Will they be around next year? These are all valid concerns. We’ve tried to answer these questions with information from each platform’s website.
How long have they been around?
Push Technology was founded in 2006 while Realtime.co was established in 2014.
Team size
According to Crunchbase, Realtime.co has 51-100 employees and Push Technology has 11-50 employees. It’s worth noting that Realtime.co is actually a product named Realtime Framework produced by Realtime.co app creators.
Track record
Both Realtime.co and Push Technology both have a range of brands using their platforms, including:
Products | Realtime.co | Push |
---|---|---|
League Of War: Mercenaries | Brenock Technology (Ocean Guardian) | |
Buddytruk | PIA First | |
The Fluid App | Tradition | |
Mastercook | Sportingbet | |
Brandlive | Consorsbank |
Which platform is best?
Unfortunately this just isn’t a question we can answer outright. Both of these realtime data streaming platforms have their pros and cons when it comes to functionality. However, on the strength of docs, level of support, and outward strength of the core product Push Technology is likely to be the better choice of the two.
And, as we’ve mentioned twice before, as of January 2019 it’s unclear whether Realtime.co is still actively building or even maintaining their product. So please do your own research before choosing any provider.
Ultimately the choice is yours but hopefully this article helped you gain a better understanding of what you should look for in a realtime data streaming platform – and whether Realtime.co or Pusher Technology can provide what you’re looking for.