Recently, I wrote about PubNub, a provider of cross-device and cross-platform APIs and global messaging infrastructure to simplify the coding your realtime apps. Perhaps you read that article and maybe even tried PubNub out for yourself. If you found it intriguing, perhaps real-time app development is your wheelhouse? Maybe you're unsure whether or not apps that you have developed or are currently coding qualify as real-time apps? If you answered yes to either of these questions, I think that you'll find today's topic quite edifying. We're going to go over some of the factors that make an application one of the real-time variety.
Real-time vs. Traditional Applications
A real-time application (RTA) is an one that functions within a time frame that the user senses as immediate or very close to it. It goes without saying that the latency must be less than a second or two, perhaps even much less. But, there's more to it than that. Otherwise, any reasonably well tuned DBMS backed app would qualify as real time. The key ingredient that's missing from these old school apps is the dated nature of their data. Even the most current values may be hours, weeks, or months old.
Take a look at the following examples of RTAs and think about the kind of data that they would deal with:
- Videoconference applications
- VoIP (voice over Internet Protocol)
- Online gaming
- Resource sharing Cloud solutions
- Some e-commerce transactions
- IM (instant messaging)
Stored data plays a decidedly minor role in RTAs. It's relegated to persisting configuration, security, and user profile information; the star of the show is data that comes from other apps, data feeds, Internet of Things (IoT) devices, and a myriad of other sources that transmit data as soon as it becomes available.
Like many "new" technologies, real-time apps are not actually new. I can still remember the widespread use of chat apps on campus while attending college twenty years ago. The difference between then and now is that real-time apps now dominate over traditional database-backed applications, whereas back in the day, they were the exception to the rule. Indeed, real-time apps have become essential for our time-sensitive, reactive lifestyles, where even a few seconds of delay can cause us substantial grief.
The tipping point was reached when smart phones took over the market share. As soon as they began to track their user's movements and location, the need for real-time processing became essential. Add to that the rise of IoT and Big Data, and real-time truly becomes a necessity.
Real-time apps provide many benefits: They give us the ability to make better decisions and take meaningful actions at the right time. Credit card companies can detect fraud as soon as someone swipes a credit card. Other businesses can trigger an offer while a shopper is standing on a checkout line, or place an ad on a Web site while someone is viewing a specific Web page. Real time is about combining and analyzing data so you can take the right action, at the right time, and at the right place.
If you're interested in developing real-time applications, you might want to check out PubNub's site to learn more about it. They offer many products, but their main one is a real-time publish/subscribe messaging API built on their global data stream network. It's comprised of a replicated network of at least 14 data centers located in North America, South America, Europe, and Asia. The network currently serves over 330 million devices and streams over a trillion messages per month.