Enterprise Java
Couchbase Java SDK with Rx-Java
A neat thing about CouchbaseJava SDK is that it is built on top of the excellent Rx-Java library, this enables a reactive way to interact with a Couchbase server instance which is very intuitive once you get the hang of it.
Consider a very simple json document that I intend to store in Couchbase:
{"key":"1","value":"one"}and a Java class to hold this json:
public class KeyVal {
private String key;
private String value;
...
}The following is the code to insert an instance of KeyVal to a Couchbase bucket:
JsonObject jsonObject = JsonObject.empty().put("key", keyVal.getKey()).put("value", keyVal.getValue());
JsonDocument doc = JsonDocument.create(keyVal.getKey(), jsonObject);
Observable<JsonDocument> obs = bucket
.async()
.insert(doc);The return type of the insert is an Observable, so if I needed to map the return type back a KeyVal I can use the extensive mapping support provided by Observable class.
Observable<KeyVal> obs = bucket
.async()
.insert(doc)
.map(jsonDoc ->
new KeyVal(jsonDoc.id(), jsonDoc.content().getString("value"))
);Other API’s follow a similar pattern, for eg. to retrieve the saved document:
bucket
.async()
.get(id)
.map(doc ->
new KeyVal(doc.id(),
doc.content().getString("value")));- If you are interested in exploring this sample further, here is my github repo with a working example – https://github.com/bijukunjummen/sample-karyon2-couch
Resources
- Couchbase Java SDK: http://docs.couchbase.com/developer/java-2.1/java-intro.html
- Rx-Java: https://github.com/ReactiveX/RxJava
- An excellent and concise article on Rx-Java provided at the Couchbase site: http://docs.couchbase.com/developer/java-2.0/observables.html
| Reference: | Couchbase Java SDK with Rx-Java from our JCG partner Biju Kunjummen at the all and sundry blog. |




