Storage is one of the overlooked requirements of enterprise mobile solutions. From a technical standpoint, almost any mobile application you can think of requires some form of storage to persist transient data that is specific to its runtime behavior.
That type of mobile-first storage is very specific to the functionality of the mobile app and is not related to the manipulation of business data which is typically stored in corporate databases. The following list includes some of the classic examples of mobile-first storage:
- Application-User Settings
- Application Session Data
- User Session Data
- Cached Data
From an architecture standpoint, this type of mobile-first storage has some very unique characteristics:
- Semi-structured: Any mobile-first storage technology must be able to store semi-structured data as this is the most common data payload in mobile applications.
- Isolated per mobile application: A mobile-first storage should be able to provision isolated storage units for the different mobile applications. This will prevent collisions between the different mobile apps deployed in an enterprise.
- Partitioned at the user level: Similarly to the previous point, the mobile-first storage units should be also partitioned at the user level.
- Elastic: A mobile-first storage must scale up and down with the number of users and applications.
- Provisioned on-demand: Different from traditional databases, mobile-first storage units must be provisioned real time based on a request triggered by the mobile application.
Factoring in all those characteristics, you can quickly see how challenging will be for a traditional IT department to implement this type of mobile-first storage without building a dedicated infrastructure just for it. In that sense, many enterprise mobile solutions including enterprise mobile backend as a service platforms, provide mobile-first storage APIs that address this specific scenario.
Conceptually, this type of platforms abstract the complexities of provisioning, partitioning and scaling storage units behind simple mobile-first APIs that expose the traditional query and save operations. The following figure illustrates that concept:
In that model, the storage units required at the application or user level will be provisioned based on simple Save operations initiated by the mobile storage API. In that sense, a mobile developer is simply reading or writing data without dealing with the intricacies of the storage platform.
While the mobile-first storage pattern is very common in enterprise mobile solutions is rarely sufficient to address all the data exchange-storage requirements of a typical enterprise mobile application. Typically, mobile platforms combine this pattern with other enterprise mobile capabilities such as offline storage, geo-aware routing or integration with corporate systems which will be the subject of future posts.