Couchbase use cases and solutions
Aggregate data collected from different sources in one platform to build a single view of your customer or business.
Catalog and inventory
Publish new product and inventory content in real time and scale to millions of products and requests per second to present the right data at the right time.
Enable field employees with one platform to manage data from different sources, push that data to the edge, and ensure that data is available online and offline.
IoT data management
Manage, support, and drive real-time data insights at the edge with embedded and cloud databases, sync, and guaranteed data availability.
Meet the Couchbase Data Platform
Customers expect and demand fast, responsive applications. Many enterprises will add an in-memory caching product in front of their relational and NoSQL database to increase performance and throughput, and to ensure responsiveness. However, this adds operational and management complexity as well as additional cost.
Built on a memory-first architecture, Couchbase ensures that all operations occur in-memory and supports special memory-optimized data management options, including 100% memory resident indexes and data buckets. This optimizes data-access performance and throughput while also simplifying operational management and reducing costs. By achieving memory-speed data transfer between nodes in the cluster, Couchbase avoids traditional database disk I/O bottlenecks.
Couchbase leverages its memory-first architecture to transfer data between nodes in the cluster at the speed of memory, thus avoiding traditional database disk I/O bottlenecks.
As part of the core database engine, Couchbase provides an elastic Multi-Dimensional Scaling (MDS) architecture that supports both scale-up and scale-out approaches.
MDS allows you to separate the different data processing workloads as distinct, independently scalable services. You can independently configure and scale (up or out) the data, index, query, Full Text Search, and Analytics Services based on your data management processing requirements and application workloads. This gives you both the scalability to deliver responsive customer applications and the flexibility to adapt to new and changing workloads and application requirements.
MDS is particularly well-suited for the cloud where compute, storage, and memory resources are typically allocated and expensed separately. MDS allows you to independently configure and scale your compute, storage, and memory resources for each service. This results in a more efficient allocation and use of resources, ultimately reducing your overall cost of operations in the cloud.
Couchbase Server’s architecture guards against most forms of failure, and protects against data loss. Buckets can be configured for replication to create data redundancy and to allow for the failure of copies – as long as the data is available somewhere, it’s not lost. Data is also written to the disk, so in the case of a power outage or software crash, data can be retrieved from the disk during recovery. Depending on durability and performance requirements, users can configure the right durability options to meet their application needs.
Couchbase manages transactions automatically, storing metadata in the system as your application executes transactional logic. Couchbase's traditional strong consistency across single documents is now complemented by multi-document, distributed ACID transactions.
Scalability and High Availability
Couchbase transactions are designed to take advantage of the highly distributed, highly performant nature of the Couchbase architecture. The only nodes that will be involved in the transaction are those that are required to be, meeting the “high availability” guarantees described in this paper by Bailis et al. Care has been taken to ensure that there are no single points of contention, so that your transaction throughput will scale as your system does.
Couchbase Server provides high availability for reading and writing of data through a variety of features. Couchbase provides high availability using intra-cluster replication and index replication, and disaster recovery using cross datacenter replication (XDCR).
Intra-cluster replication involves replicas that are placed on another node in the same cluster. In the event of failure of a single node, this ensures that data is still available on other nodes that can provide full read and write ability to the applications.
Cross datacenter replication
Using the cross datacenter replication (XDCR) capability, you can set up replication of data between clusters. XDCR helps protect against datacenter failures and also helps maintain data locality in globally distributed mission-critical applications.
Index replication support has been added to improve high availability and manageability of indexes. Users can specify the number of replicas to create, and the system will manage the placement of the index replicas on different index nodes, server groups, and availability zones.
Couchbase Eventing is a highly available, performant, and scalable service which enables user-defined business logic to be triggered in real time on the server when application interactions create changes in data. Eventing makes it easy to develop, deploy, debug, and maintain data-driven functions from a centralized platform. Natively integrated with Couchbase, it requires no third-party solutions to license or new dataops skills to manage.
Build and evolve web, mobile, and IoT apps faster using Couchbase’s own query language, N1QL (“nickel”). N1QL combines the power and familiarity of SQL with the flexibility and agility of the JSON data model.
N1QL is a declarative query language that extends SQL for JSON data. You can query data via native framework and language integrations, a fluent and easy-to-use API, several Couchbase utilities, or available JDBC/ODBC drivers.
With N1QL you can query JSON documents without any limitations: sort, filter, transform, group, and combine data with a single query. You can combine data from multiple documents with a JOIN. And you’re not limited to the “single table” and “table per query” data models often found in other NoSQL products.
In the Couchbase Mobile 2.0 release, N1QL has also been added to Couchbase Lite. This allows mobile application developers to leverage their existing SQL programming skills along with the flexibility of JSON.
Powerful parallel query processing over JSON data allows you to:
- Efficiently execute complex, long-running SQL-like queries that contain complex joins and set, aggregation, and grouping operations
- Address the challenges of supporting responsive, scalable apps and ad hoc analytics on the same dataset
Couchbase Analytics powerfully combines a common JSON data model with:
- A SQL-like query language extended for JSON
- Effective analytical workload isolation
- Up-to-date data freshness via a fast memory-to-memory transfer protocol in a single platform
This allows app developers and DevOps to build intelligent applications and dashboards that surface insights to customers and business users in real time without the overhead and latency of performing separate extract, transform, load (ETL) operations.
Built-in Full-Text Search (FTS) makes it simple for developers to add intelligence to apps. Full-text indexes are automatically managed within the Couchbase cluster, avoiding the delay, overhead, and complexity of managing a separate full-text search product and infrastructure.
FTS enables you to create, manage, and query full-text indexes on JSON documents stored in a Couchbase bucket. It provides powerful capabilities for natural language queries, including:
- Stemming, which provides a language-aware manner of searching (e.g., users can type "beauties" and find results for "beauty")
- Scoring, which provides relevance ranking for results
- Fast multipurpose indexes where a single index can support a wide range of possible text searches
In the Couchbase Mobile 2.0 release, Full-Text Search has also been added to Couchbase Lite. This allows mobile application developers to incorporate device-local FTS queries and intelligence into their mobile applications.
An index is a data structure that provides a quick and efficient means to query and access all your data without scanning every document. Applications can query Couchbase Server in one of the following ways:
- Using key-value access – Applications directly access data through the data service with document keys for fastest access
- Using N1QL – Applications use SQL-like syntax with global secondary indexes or MapReduce views to speed up queries
- Using Couchbase View API directly – Applications directly query the MapReduce view indexes or spatial views for purpose-built precomputed indexes
Customer experience depends on app performance and behavior, which in turn depends largely on database performance and throughput.
At the heart of the Couchbase is a distributed key-value (KV) data store. It’s an extremely simple, lightning fast, schemaless data management system that stores a unique ID (key) and a piece of arbitrary information (value). The key is hashed by the Couchbase client library, automatically sharded, and directly sent to the appropriate data service node in the Couchbase cluster.
The KV store is accessed using simple create, read, update, delete (CRUD) APIs, and thus provides a simpler interface when accessing documents using their IDs (primary keys). Due to their simplicity, KV operations execute with extremely low latency, often sub-millisecond.
Applications can access data stored in the Couchbase Data Platform using a variety of interfaces, including the KV API, MapReduce views, N1QL queries, Full-Text Search, and the Analytics Service. For simple CRUD operations using the primary key, the KV API is the fastest and most efficient way of accessing the data.
Couchbase gives you a full-stack data platform for your mobile and IoT apps, including built-in real-time data synchronization, enterprise-level security, and data integration with your existing ecosystem.
Your mobile and IoT apps leverage the full power of the Couchbase Data Platform by using Couchbase Server, Couchbase Sync Gateway, and Couchbase Lite to enable secure online and offline data access, as well as automatic data synchronization from device to the backend.
Data integration APIs let you integrate with your existing systems of record, data warehouses, and other legacy systems via Sync Gateway or Couchbase Server.
Whether you have hundreds, thousands, or millions of devices, Couchbase Server and Sync Gateway are independently scalable in real time, enabling you to keep up with changing demands.
Big Data and SQL Integrations
Rich, immersive apps need to leverage data across the entire data management ecosystem, including SQL and big data databases and tools. Couchbase includes built-in big data and SQL integration to allow you to build intelligent apps in less time by leveraging your tools, processing capacity, and data – wherever it may reside.
Big data integration is provided via high-performance scalable connectors for Hadoop, Kafka, Spark, and Elasticsearch that leverage the latest advances and features available in these rapidly emerging technologies.
SQL integration is enabled in a couple of different ways. The JDBC and ODBC drivers by Simba and the ODBC, JDBC, ADO.NET, OData, SSIS, BizTalk, and Excel drivers by CData allow you to use any standards-compliant tool with Couchbase. Couchbase also provides instructions and connector technology for specific BI, visualization, and ETL tools, including Tableau, Qlik, SlamData, Knowi, Excel, Power BI, Looker, Informatica, Talend, TIBCO, and many others.
Unified Programming Model
Couchbase gives you simple connectors and tools and uniform application development APIs across multiple programming languages, making it easier to build applications and reducing your time to market. Are you a Mobile or IoT developer? Couchbase lets you seamlessly move data from the datacenter to the cloud and the edge.
The Couchbase SDKs provide native support for synchronous, asynchronous, and event-driven programming models in the languages that support them. A set of Server and Mobile REST APIs are also available for queries, system configuration, and administration.
Additional SDKs – including specific API implementations and SDKs for Java, PHP, Ruby, Erlang, Perl, TCL, and ColdFusion – are available from the open source community. For more information, see the open source projects from the community list.
Although security is fairly standard in the relational database world, in the NoSQL world it varies significantly from product to product.
With Couchbase, your data is secure everywhere – on the wire, on the device, in the cloud, and in the datacenter. The Couchbase provides built-in and configurable full-stack security for authentication, authorization, encryption over the wire, and auditing. Via our technology partners, we also provide encryption, data masking, and field-level security.
Container and Cloud Deployments
A cloud-first strategy is key to constant innovation and the ability to respond to fast-changing business needs. However, a successful cloud-first strategy must weigh the options of public, private, hybrid, and multi-cloud deployments, while trying to avoid vendor lock-in and unforeseen operational issues.
Couchbase is cloud-native and architected to work on any cloud. Differentiated functionality like auto-sharding, shared-nothing, memory-first architecture, Multi-Dimensional Scaling, cross datacenter replication (XDCR), zone- and region-aware replication, and a cloud-based Sync Gateway make Couchbase uniquely suited for cloud deployments.
Couchbase provides easily deployed pre-built modules on AWS, Google Cloud Platform, and Microsoft Azure marketplaces. Couchbase also supports a variety of container and virtualization technologies, including partnerships with Joyent, Docker, and Red Hat OpenShift, to enable operational excellence across any kind of public, private, hybrid, or multicloud deployment.