NoSQL databases can help develop robust and diverse mobile apps. Wayne Carter, Chief Architect of Mobile at Couchbase explains why.
There have been more people using mobile apps than desktop apps since 2014. There were nearly 2 billion mobile app users in 2015. Given the steady ongoing growth of the mobile app market, it's no surprise that many enterprises are focusing on mobile-first strategies these days.
The performance of mobile apps plays an important role in generating revenue and establishing company reputation. As a result, mobile apps have many demands placed upon them. They may need to connect to systems or resources which can rapidly handle lots of users, but yet must still meet acceptable performance expectations. "Always on" access is also a global fact of life often necessitating constant availability regardless of the time of day.
Therein lies a significant challenge for mobile apps: not all devices are always connected to a wi-fi or global data network. I talked to Wayne Carter, chief architect of mobile at Couchbase, about how NoSQL databases are uniquely capable of helping companies overcome these challenges.
"You can't afford to have customers or employees cut off from important transactions just because an app temporarily goes offline," said Carter. "That means your mobile apps need to work regardless of network connection."
Carter said Couchbase uses embedded NoSQL databases to store data locally so apps aren't dependent on a network. If the connection is lost, data is automatically synced from the cloud to the device when the network is restored. (Full disclosure: since Couchbase's products are based on NoSQL there's naturally a preference on their part towards this type of database technology. However that goes hand-in-hand with the extensive NoSQL familiarity for which we sought Carter's views.)
NoSQL makes sense for mobile apps
According to Carter, traditional, normally server-based databases such as Oracle, SQL Server, DB2 and MySQL aren't a good fit for mobile apps, since they require more resource capacity. Furthermore, these databases can make it more difficult for companies to rapidly develop and scale their mobile apps as requirements and data models change.
NoSQL databases are ideal for mobile and web apps since they do not use schemas and have no limiting definitions upon how data must be modeled. Instead, this type of database (known as a "document database") uses a data model defined by the applications or services involved, whereby data is seen as a set of objects and applications and services simply read and write documents.
During our conversation, Carter outlined six other mobile use cases best addressed by NoSQL technology, including:
"Today's mobile applications require fast access to data," said Carter. NoSQL eliminates the need to constantly request data from the server because data is stored and cached in the embedded database and synchronized automatically with the cloud or remote servers.
Digitization of paper assets
"Reducing operational time and costs is critical for any business, and mobile application deployments can be a key component of making it happen," Carter stated. Digitization saves time, resources, storage and costs.
Content delivery and storage
"Guaranteed delivery and storage of assets is crucial for a great user experience," explained Carter. Storing information locally ensures content is always available, and the types of data this can apply to is robust and diverse.
Real-time asset tracking
"Real-time asset tracking is a key requirement in mobile applications across many industries," Carter said. This information can be shared with other personnel or customers so they are aware of asset locations in a real time basis.
Peer-to-peer device usage
When devices are connected directly via peer-to-peer replication, employees and customers can connect to share information. Apps can continue to work regardless of internet connectivity.
User data and preferences storage
User data such as preferences, profiles, sign-in information and game states can be securely stored and synchronized to provide a consistent experience across multiple devices.
"Mobile products need to address data management and security concerns outside the cloud," Carter said. "This is becoming more of an issue as security becomes more paramount and as data decentralizes."
I also asked Carter the following questions:
Why are the above seven examples so relevant for the use of NoSQL?
"The use cases above are the types of applications that many of the largest enterprises in the world are building to power their businesses. Many of our customers are using mission-critical applications that fall into at least one, if not more, of these use cases. And they're choosing NoSQL because of the massive benefits they see around performance, offline capabilities, scalability, and flexibility."
Is there a particular type of app (email, social media, game, productivity, etc.) you find is the best fit for NoSQL?
"We find that any app that requires offline capabilities (which is almost all apps today) is a fit for NoSQL and any company that is part of today's Digital Economy would benefit from it. Some examples of our customers include companies in the gaming, travel, healthcare, theme park, cruise line, retail and e-commerce space."
How do you see NoSQL responding to the needs of mobile app developers in the future?
"Solving for data management and security concerns throughout the entire application stack is hard to do. And these challenges will continue to grow as we see more advancement in the IoT and mobile space. As we grow more reliant on mobile devices and connected machines (think cars, appliances, and more), we're going to be making data-driven decisions more so than ever before in our day-to-day lives. We will need the backing technologies that enable data-driven decisions to be made in real-time."
A distributed NoSQL database leverages commodity hardware to scale out - i.e., add more resources simply by adding more servers. The ability to scale out enables enterprises to scale more efficiently by (a) deploying no more hardware than is required to meet the current load, (b) leveraging less expensive hardware and/or cloud infrastructure, and (c) scaling on-demand and without downtime.In addition to being able to scale effective and efficiently, distributed NoSQL databases are easy to install, configure, and scale. They were engineered to distribute reads, writes, and storage, and they were engineered to operate at any scale - including the management and monitoring of clusters small and large.
New report confirms you need NoSQL, and probably in the cloud
The best of big data NoSQL: MongoDB, Amazon, and DataStax top Forrester list
Redis Modules extend NoSQL database's capabilities, increase developer involvement
NoSQL keeps rising, but relational databases still dominate big data