Pain Points, Design Decisions and How We Built Blynk - Neebal's Offline First Mobility Platform
A common problem many of our clients face these days is deciding which business cases should be digitized as mobility solutions and which ones as traditional web platforms. When clients choose mobility, they need to take further decisions to decide if the app platform should be built as a purely online platform or as support for offline functioning or both. If the business case demands an offline-first mobile app platform to be built, then clients need to brace themselves for technical complexities, associated costs, and the time it will take for the platform to mature and become robust to be able to handle every possible scenario.
Having worked in the enterprise mobility domain for the last 9 years, we, at Neebal Technologies have seen almost everything around the use of enterprise mobility with respect to solving customer business problems. We have been riding the enterprise mobility wave which has swept the enterprise and start-up landscape for almost a decade now. I believe this gives us the credibility to write about our experiences in mobility tech.
In this article, I will focus on the pain points that organizations face while building Offline First Mobility platforms, how our experience of building them led to us conceptualizing and building our Offline Mobility Platform named Blynk. I plan on converting this into a series of posts that will cover the finer details of everything that goes into building offline-first mobile apps.
Offline First Mobile Apps
Let me begin by explaining what offline-first mobile apps are. Mobile apps are a great fit where business users are constantly on the move capturing data in real-time. It could vary from performing business transactions, to making decisions, and to triggering actions which set in motion dependent business workflows. But what if business users are working in areas of poor network connectivity and intermittent network? An offline-first mobile app allows users to perform their day-to-day business on mobile apps without the need of being connected to the internet. Executives that are constantly on the move, field force users like medical representatives (MRs), and sales teams working in villages (especially in the Agro sector) are some examples that come to mind.
So, what are the typical problems associated with Offline-First Mobile Apps?
Support for fire & forget transactions (i.e. users are not bothered if transactions are synced) >> asynchronous automatic data synchronization with the server
Synchronization of new data updates from Server - master & transaction
Differential data sync - sync what has changed to reduce the data packet size
Handle intermittent network connectivity with support for pause and resume of data sync between servers
0% data loss because of intermittent network connectivity
Effective data synchronization protocol to track server and client acknowledgement
Robust retry mechanism to avoid data duplication for transactions
Data Security - both at REST and In-Transit
Compliance requirements like HIPAA from a technical implementation perspective, especially when clients are dealing with PHI (Patient Health Information) records
Neebal Solution - Blynk a truly Offline-First Mobile Platform
Here are a few design decisions that we took to solve the above problems when we built Blynk, Neebal’s Offline-First Mobile App Accelerator Platform.
Queue for asynchronous processing
JMS compliant queue
Default support for AWS SQS to focus on core business functionality rather than building & maintaining web scale queueing infrastructure
Transactional data was still to be persisted with APIs following REST standard
Enabled auditing and logging of processing of asynchronous data received
Multi-threaded listener pattern for SQS processing
Dynamic & configurable listener configuration to horizontally scale queue processing basis user transaction load
Offline data storage in mobile using a relational database
Direct upload of media to file servers
Eliminate server platform as a proxy for pushing media, reducing the complexity associated with large size data transfers
SSL based communication for data in transit
Use of SSL for all communication between client & Server
SSL pinning to prevent a man-in-the-middle attack
Encryption of data for data at rest
Datastore in AWS SQS/JMS compliant queue in an encrypted format
Encryption of offline database maintained on the mobile -
Dynamic key generation
Native library implementation for dynamic key generation for encrypting data payload
Data content-agnostic payload transfer
Data payload transferred as a zip file
Large chunk of data split into multiple files
Each file is password protected by the bundle
Guarantees data compression with pause and resume support for patchy network conditions
Android/iOS SDK for handling complexities of offline data sync, retries, exception handling which can be integrated by any mobile app meant to perform offline data transfer
As I mentioned earlier, I will cover the finer details of the above-listed problems and the design decisions we took to solve them in a series of posts.
Basis the above design decisions, we came up with the following high-level server architecture for Blynk.
Not all of the design decisions listed above were made on day one. Few of them were discovered as part of our experiences of deploying the platform for our customers. The platform has evolved and is now on its own journey towards maturity.
Industries where Neebal has introduced Offline-First Mobile Apps via Blynk
Over the years, we have worked with multiple clients on numerous business cases to build offline mobility platforms
Digital Diagnostic Device Platform in Pharma and Healthcare sector
Enables patients to get real-time feedback on mobile on their usage and dosage performed via BLE enabled diagnostic devices
Field Force Management Platform in Pharma, Agro, and Retail sectors
Used by sales reps constantly on the move in villages and small towns interacting with their end customers, retailers, patients, and farmers
Digital Prescription Platform in the Healthcare sector
Enabling doctors to write prescriptions on paper with a digital pen without being connected to a system with internet with a daily sync
In our experience, we have noticed that Offline First Mobile App platforms have common patterns of problems and subsequently a common set of design decisions and architectural patterns are introduced to solve these problems. Once the identified pattern is systemized, it can be used as a framework to solve almost all offline business cases.
There is no denying that building offline-first mobile apps is challenging. I believe that we have mastered building them with the knowledge gained over a decade of working with different business problems with the sole focus of helping our clients achieve their full potential.
Blynk also powers our own product, H2O Works - a platform for field force management driving secondary sales for Pharma, Retail, OTC, and Agro businesses. All the offline-first apps that we build for our customers are based on Blynk. At the same time, we ensure that our customers are not bound to the platform code since its code is open for modification if they wish to maintain and extend the same on their own.
About the Author: Priyadarshan Patil is the Chief Operating Officer at Neebal Technologies. As our COO, he strive towards streamlining delivery processes and their implementations while nurturing relationships across Neebal's customers.