Today we are releasing an open source Couchbase provider for our CacheBox library whether you use it standalone or within a ColdBox application. We have been working with Couchbase NoSQL server and have been absolutely loving it. This provider will allow you to leverage Couchbase Server from any CFML application that leverages CacheBox for your caching needs. We have created two providers in our initial release: 1) For standalone Couchbase integration in any CFML application, 2) For ColdBox applications. The latter will allow you to hook up Couchbase to your ColdBox applications and even allow you to use it for event and view caching alongside data caching. We also take care of serializations and Java inter-operability for Adobe ColdFusion and Railo CFML as well. You can also leverage the Couchbase ColdBox provider for Flash RAM capabilities as well. As with anything we do here at Ortus, this provider is fully documented and professionally supported.
Caching is an important layer in today's applications that require high availability in clustered and standalone environments alike. Caching demands require fast performance, lots of storage, and the ability to scale horizontally so your cache infrastructure can grow with your needs. We take caching seriously which is why we've built tools like CacheBoxwhich is not only a caching engine, but an aggregator and API for other cache systems. In-process caches, which run on the JVM alongside your application and share the same heap space, are convenient and easy to set up, but they have many limitations when it comes to scalability and redundancy.
This is why we've spent time learning about other out-of-process and distributed caching strategies and have been working with Couchbase for a while now. Even though, Couchbase is in itself a NoSQL Database, it is also an amalgamation of CouchDB and Memcached on steroids with clustering, replication and distributed capabilities.
Couchbase is a combination of CouchDB's NoSQL engine with over-the-wire compatibility with the Memcached protocol-- a standard in the caching world. Couchbase can be used as an indexable, queryable JSON document store or a simple key/value store. Main benefits of Couchbase server are:
- Clustered - You can scale out a Couchbase cluster as large as you need it. There’s even cross data center replication (XDCR) for multiple, geo-located clusters and disastery recovery.
- Some solutions are RAM-only or Disk-only, but Couchbase uses a combination of RAM and Disk storage for its data.
- Data Replication and Auto-Failover: This is an amazing feature for high availability and redundancy that comes out of the box with Couchbase.
- Since Couchbase implements the Memcached protocol, it can be a drop-in replacement for Memcached to allow for things like larger document sizes.
- Unlike Memcached, Couchbase Server gives you any number of named storage locations called vBuckets; each of which have their own storage, configurations, document views and statistics.
- It has a really nice web-based real-time interface for managing it. Very nice for a free open source offering!
- It’s fast-- REALLY fast. Every operation is asynchronous and setting a simple value into Couchbase can be as fast as 25 microseconds. That’s .000025 seconds!
- They have client SDK libraries available for Java, .Net, PHP, Ruby, C, Python and others so it’s very accessible from any project. The Java SDK is what we use to connect to Couchbase via CFML. (They also have experimental libraries for node.js and go)
- It’s professionally backed, just like ColdBox and ContentBox so professional licenses are available that come with support programs.