Your SlideShare is downloading. ×

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Couchbase TLV Dev track 05 - exploring common models and integration


Published on

Published in: Technology

  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Developing with Couchbase: Exploring Common Models and Integrations Michael Nitschinger Engineer, Developer Solutions
  • 2. JVM Integrations
  • 3. Spring Data Couchbase • Integration with Spring Data - Templates Repositories Exception Mapping also @Cacheable • Maps POJO Entities to JSON (and back) • Under development, M2 released (RC1 soon).
  • 4. Repositories – Do this
  • 5. Repositories – Get this 6
  • 6. Repositories – Backed by Views findByFirstname() findAll(), count() 7
  • 7. JavaConfig 8
  • 8. Putting it together 9
  • 9. There is more! • Entity mapping (Alias keys, TTLs, @Version for optimistic concurrency,...) • JavaConfig and XML support • CouchbaseTemplate for lower level access • @View to customize Views and DesignDocuments • @Cacheable suport for transparent caching • Spring Boot and Spring XD integration in the works 10
  • 10. ReactiveCouchbase • ReactiveCouchbase - integrates Scala, Play and Akka Very sophisticated • i.e. Capped Collections • N1QL Support • Maintained by the community •
  • 11. ReactiveCouchbase Core 12
  • 12. ReactiveCouchbase Play 13
  • 13. .NET Integrations
  • 14. couchbase-aspnet General Infrastructure for ASP.NET Applications • SessionState Provider - Allows for storing session state in Couchbase, where it will be fast to access, replicated, persisted Session["Message"] = "Couchbase is awesome!”; • OutputCache Provider - Allows for retrieving some content directly from Couchbase as a cache, rather than executing code each time. [OutputCache(Duration = 60, VaryByParam="foo")] public ActionResult Time(string foo) { return Content(DateTime.Now.ToString()); }
  • 15. couchbase-glimpse Couchbase Insight, In the Browser • CouchbaseGlimpse package available on NuGet or listed off of - Allows for insight into what’s happening on the back-end as you interact with your web application
  • 16. couchbase-model-views • Decorate your entities to generate views for indexing the JSON behind those classes
  • 17. Ruby Integrations
  • 18. ActiveModel • Allows for idiomatic Model interaction - in Ruby and Ruby on Rails • Simple modeling of entities • Rich querying • Automatic View Management •
  • 19. ActiveModel
  • 20. Full Text Search
  • 21. Elasticsearch Integration
  • 22. Elasticsearch + Couchbase Workflow ES Query (Criteria) ES Result (IDs) Couchbase MultiGet Couchbase Result (Docs)
  • 23. The Learning Portal • Designed and built as a collaboration between MHE Labs and Couchbase • Serves as proof-of-concept and testing harness for Couchbase + Elasticsearch integration • Available for download and further development as open source code
  • 24. Dogfooding: CBUGG • Philosophy: - Because all bug systems are bad and I like writing bad code. Also could be CB UGG
  • 25. CBFS Node CBFS Node CBFS Node Elastic Search Connector CBFS Couchbase Node Couchbase Node Elastic Search Node Couchbase Node go-couchbase Elastic Search Node REST requests cbugg cbugg cbugg cbugg ⁃ ⁃ ⁃ You Create bug on github, closed immediately, creates a bug on cbugg. Pull requests send to the project, create cbugg issues tagged as pull request. Bug references can show up as comments on the bugs. Elastic Search Node
  • 26. Job Queue Processing
  • 27. Job Queue Process John Connolly from The Ladders: Denormalize the Datas for Great Good
  • 28. Hadoop
  • 29. Ad and offer targeting 40 milliseconds to respond with the decision. 3 profiles, real time campaign statistics 2 1 events profiles, campaigns
  • 30. Ad Targeting: Moving Parts Ad Targeting Platform Couchbase Server Cluster sqoop export Logs Logs Logs Logs Logs flume flow sqoop import Hadoop Cluster
  • 31. Content and Recommendation Targeting 3 make recommendations Content Oriented Site 1 events 2 user profiles Legacy Relational Database
  • 32. Content Driven Site: Moving Parts In order to keep up with changing needs on richer, more targeted content that is delivered to larger and larger audiences very quickly, data behind content driven sites is shifting to Couchbase. Content Driven Web Site Legacy RDBMS Couchbase Server Cluster Logs Logs Logs Logs Logs flume flow sqoop import Hadoop excels at complex analytics which may involve multiple steps of processing which incorporate a number of different data sources. sqoop export Hadoop Cluster sqoop import
  • 33. Extract, Transform, Load
  • 34. Talend Connector
  • 35. Your Turn
  • 36. Q&A
  • 37. Thanks!