I really enjoy talking to vendors who avoid zealotry for their technology categories, and instead provide candid guidance on where they're best applied. Such vendors also tend to ignore dogma, and adopt features and technologies from competing categories where doing so benefits their customers.
NoSQL, in its element
NoSQL contender Couchbase is one such vendor. Ravi Mayuram, the company's SVP, Products and Engineering, has a crisp understanding of where variable schema databases work well, and where they're unnecessary, or even detrimental.
That's refreshing, as is his realist view toward the ubiquity of SQL skillsets. Maybe it's why Couchbase was happy to create a SQL language interface to its database, and to extend its original key-value store architecture to accommodate JSON documents.
Couchbase Server's newest release, 4.6, which is being announced today, predictably takes this versatility approach a bit further, and adds some fit and finish to some of the bits that were already there. Interestingly, though, this release isn't just about features in the product -- it's about how those features are framed contextually by Couchbase's own introspection and its success in areas where NoSQL is especially well-suited.
Couchbase rightly points out that in the early days of NoSQL, the best applications for the technology included things like user profile and session tracking, ecommerce catalogs, metadata, and omni-channel customer analytics. All of these applications require the tracking of data that can vary in structure from record to record. One class of user may have different attributes than another, as might its online sessions; a book for sale from an e-tailer will have different attributes than a pair of shoes sold by the same merchant; and customers will have different attributes relative to each other and across different channels.
Things like array and object management are important in these applications, so Couchbase 4.6 is adding functions for them in N1QL, Couchbase's SQL interface.
Complex data structures are important in these applications, too, and Couchbase Server 4.6 adds support for some new ones, including lists, maps, and sets.
But beyond these canonical application types, Couchbase is seeing more opportunities for NoSQL. Mayuram concedes that relational databases work best for systems of record, which back transactional business processes, with known parameters and repeatable event structures. But other Enterprise applications, described by a term Mayuram's borrowed from Geoffrey Moore - systems of engagement - are handled really well by NoSQL databases. These include applications such as entitlement management, asset and resource management...even inventory systems and operational dashboarding.
With so many bona fide Enteprise apps to target, Couchbase Server 4.6 adds more Enterprise features, like simplified global conflict resolution using hybrid logical clocks; Pluggable Authentication Modules; and query optimizer enhancements (including faster aggregates) for N1QL.
Couchbase is also making native .NET Core support generally available. This brings in Microsoft ecosystem enterprise developers, and lets them bring their skills to the Linux platform, where NoSQL databases most frequently run.
Mobile and more
Systems of engagement often involve people, or activity in the field, so mobile support is super-important as well. So along with Couchbase Server 4.6 comes Couchbase Mobile 1.4. Its features include a new Sync Gateway Accelerator which, according to Mayuram, facilitates highly scalable IoT applications, with support for millions of devices, hundreds of applications and high concurrency/low latency data synchronization.
As soon as you start talking about IoT, the topic of streaming data usually isn't far behind. As such, it's no surprise that Couchbase 4.6 updates its connectors for Apache Kafka and Spark (including Spark's Structured Streaming). Streaming aside, these connectors facilitate data sharing too, since systems of engagement compliment systems of record and other Enterprise applications and processed/computed data must be shared between them.
Consistency, and change
Eventually, the distinctions between NoSQL and relational databases will start to blur; arguably they are already. But there will likely continue to be taxonomies of databases based on their core competencies. For applications that deal with behavioral data, heterogeneous objects and interactions with and between humans and machines, certain databases, including Couchbase, will likely be superior choices.
Conventional relational databases that excel at capturing discrete transactional processes and their data aren't going away, but new database technologies are enabling legitimately new classes of Enterprise applications, and are handling them with aplomb.