Application intelligence is a given in todays digital world. App consumers have come to expect that Netflix will fill the post-binge void with insightful viewing recommendations, Facebook will never run out of friend suggestions, banks will alert them to unusual credit card activity, and Pandora will always know the perfect song to play next.
But while users may have the luxury of taking application intelligence for granted, developers do not. Finding creative new ways to anticipate user wants and needs is more than a fun diversion; it's a competitive necessity for retaining customers and relevance.
Fortunately, the availability of cheap compute capacity, data processing tools, and learning frameworks is making it easier than ever to incorporate intelligence into applications. And savvy developers
are increasingly looking to capitalize on the point of decision, when the user is still warm, and ready to enhance their experience. For example, a traveler who just booked an airline ticket is much more likely to convert on a car rental discount offered in real time as compared to one that comes in cold hours or days later via email, phone, or browser ad.
But there is a catch. Not only do your app users demand intelligence that delights and inspires in exchange for their loyalties, they also demand high performance. So high, in fact, that even a fraction of a second of additional latency has been shown to negatively impact engagement. This means that analytic operations on live data need to be embedded inline without disrupting responsiveness; no easy feat with user experience expectations hovering at less than 100 milliseconds response time.
With the stakes so high and no room for error what can you do to ensure that you are squeezing every last drop of performance out of your smart application? To begin, you need a database optimized for real-time analytics. So, with 2017 almost upon us, we've compiled four tips to help you find such a database; one that will get your applications off to a blazing fast start in the new year!
Go Beyond Relational Databases to NoSQL
If your app deals with unstructured data such as texts, JSON, events, actions, posts, video, email, etc., there is no compelling reason to endure the high latencies that typically accompany the cross-table joins and heavy queries of relational databases. NoSQL databases, due to their lightweight data models and ability to scale across multiple servers, can achieve much higher performance than traditional relational databases in the fast-moving landscape of real-time analytics. A step further than NoSQL is in-memory NoSQL, where the blazing fast speeds of memory make real-time truly real.
The More Data Structures, the Better
offers more flexibility than relational databases, but not all NoSQL is created equal. When it comes to analytics, true performance boosts occur when your app can take advantage of data structures that have been purpose-built to support the objective at hand, whether it's time-series analysis, spatial analysis, or machine learning to name a few.
Sets, sorted sets, hashes, lists, strings, bitmap, and hyperlog are all examples of data structures designed to not only more elegantly store variably structured data, but also perform complex analytics on the data via built-in operations. The more data structures and built-in operations you have at your disposal for current and future intelligence needs, the more network and computing overhead you can eliminate, while also radically simplifying application development.
A step further than data structures is the capability to incorporate any custom functionality into your database - so that your database can adapt to your data and performance needs rather than the other way around.
Embrace techniques like real-time collaborative filtering or machine learning
are often intelligent because they employ sophisticated algorithms or automated learning techniques to glean users intent and anticipate what would delight them. Sophisticated algorithms might include recommendation engines that utilize the users actions and similar users behavior to extrapolate, or learning techniques
that classify the user based on his/her choices and then determine the right action. For these types of techniques, using a database that natively supports the underlying calculations efficiently and the least amount of development overhead, allows the most up to date models to be used in real-time. Why is real-time better than batch? Real-time allows for more flexibility than a batch model that responds to new trends every two months - it grants your application the ability to stay in lock-step with the latest trends, seasonal changes and mindset shifts. To go back to the travel booking example, if the customer has already declined car rental and hotel booking package options, maybe he/she needs to know about top attractions around the place they are visiting or if one can glean they are a business traveler based on their itinerary, maybe discounts like an airport spa visit or lounge visit might be a great offer to increase their comfort levels.
Determine If Your Data Runs Hot or Cold
Organizing data into hot, warm, and cold categories based on how frequently the data is accessed ?should also be a priority in 2017. This exercise not only ensures you are efficiently distributing the workload, but also provides an opportunity to better align your need for performance with your need to overcome prohibitive storage costs. This exercise also ensures that you are using the right NoSQL for the job - for example, for hot data, using in-memory NoSQL databases results in orders of magnitude higher performance than something like MongoDB. Using NoSQL databases with the ability to simultaneously store hot data on RAM and cold data on more cost-effective alternatives such as Flash can drastically reduce an applications operational costs without compromising its responsiveness.
No Tradeoffs Required
In 2017, as the race to provide the best user experience intensifies, application developers will need to remain laser focused on intelligence. But improved application intelligence doesn't have to come at the cost of performance. With the right database running your apps, it's possible to have the best of both worlds.
Are you paying more taxes than you have to as a developer or freelancer? The IRS is certainly not going to tell you about a deduction you failed to take, and your accountant is not likely to take the time to ask you about every deduction you’re entitled to. As former IRS Commissioner Mark Everson admitted, “If you don’t claim it, you don’t get it.
Get hands-on experience in performing simple to complex mobile forensics techniques Retrieve and analyze data stored not only on mobile devices but also through the cloud and other connected mediums A practical guide to leveraging the power of mobile forensics on popular mobile platforms with lots of tips, tricks, and caveats.
The Chirp GPS app is a top-ranked location sharing app available for Apple and Android that is super easy to use, and most of all, it's reliable.
Write and run code every step of the way, using Android Studio to create apps that integrate with other apps, download and display pictures from the web, play sounds, and more. Each chapter and app has been designed and tested to provide the knowledge and experience you need to get started in Android development.
This content is made possible by a guest author, or sponsor; it is not written by and does not necessarily reflect the views of App Developer Magazine's editorial staff.