CBJUG Meetup June 10th

22
THE ROAD TO COUCHBASE LITE VERSION 1.3 JAMES BORDEN SOFTWARE ENGINEER, COUCHBASE [email protected]

Transcript of CBJUG Meetup June 10th

Page 1: CBJUG Meetup June 10th

THE ROAD TO COUCHBASE LITE VERSION 1.3JAMES BORDENSOFTWARE ENGINEER, [email protected]

Page 2: CBJUG Meetup June 10th

My slides will be in English but I will speak in Japanese. Since some people may not be able to understand Japanese and some people may not be able to understand English, this format allows me to keep the presentation time the same while delivering in two languages. If you have any questions you want to ask in English I’ll be around after the event.

こちらのスライドは英語になっておりますが、日本語で話させていただきます。日本語ができない方もいらっしゃるかもしれないし、英語ができない方もいらっしゃるかもしれないのでこのやり方なら話す時間をそのままで 2語プレゼンできるようになります。よろしくお願い致します。

Page 3: CBJUG Meetup June 10th

ABOUT ME

• Lead Developer – Couchbase Lite .NET since January 2015• Strong Objective-C (former iOS app developer) and C#

background• Moved to Japan in 2009• Often mistaken for ‘Atsugiri Jason’ >_<

Page 4: CBJUG Meetup June 10th

WHAT WILL WE TALK ABOUT?

• Overview of Couchbase Lite, and integration into cloud• Latest developments on the Lite team• New features in version 1.3 of Couchbase Lite

Page 5: CBJUG Meetup June 10th

VIDEO TIME (DOESN’T WORK WITH POWERPOINT)!

https://www.youtube.com/watch?v=gqIslrwGj7U

Page 6: CBJUG Meetup June 10th

COUCHBASE AS A SOLUTION

Objective-C (iOS, OS X)Java (Android, Desktop, etc)C# (All of the above)

ON DEVICE PRIVATE CLOUDGo (Windows, OS X,

RedHat, Ubuntu)

PUBLIC CLOUD Erlang (Windows, OS

X,RedHat, Ubuntu, Debian,SuSE, Oracle Linux)

Page 7: CBJUG Meetup June 10th

START AT THE EDGE, WITH COUCHBASE LITE• Embedded NoSQL database library (document-oriented,

map / reduce functionality, full text search*, AES encryption)• Three versions: Objective-C, Java, .NET• Not the same as “Couchbase Server Client SDK”• Ability to replicate via CouchDB protocol to endpoints like

Sync Gateway, CouchDB, Cloudant, etc

*iOS Only

Page 8: CBJUG Meetup June 10th

WHY WAS IT CREATED?

• Apps should not stop responding when network / server is offline• Solution: save everything offline first, then sync when

network is available

Page 9: CBJUG Meetup June 10th

ON THE OTHER END, THE POWERHOUSE AWAITS!• Couchbase Server is designed to be scalable, customizable,

and powerful.• Blazingly fast key value store, combining the sturdy

architecture of CouchDB with the availability and performance of memcached

Page 10: CBJUG Meetup June 10th

AND THEN THE MIDDLE MAN

• Sync Gateway has several functions:• Writing data to Couchbase Server• Managing read and write access for replication• Providing access to clients to sync with each other

Page 11: CBJUG Meetup June 10th

SOME DEVELOPMENTS

• .NET has preliminary continuous integration support (builds in .nupkg format are provided)• New documentation writer hired• Porting platform specific functional tests to a robust cross

platform functional framework

Page 12: CBJUG Meetup June 10th

.NET JOINS THE OTHERS

Page 13: CBJUG Meetup June 10th

DOCUMENTATION OVERHAUL

• Our documentation has not been our proudest point• Looking to overhaul things, and make it easier to have

community contributed translations • We have a new hire working full time on documentation

Page 14: CBJUG Meetup June 10th

BETTER, MORE ROBUST TESTING

• Make use of Robot Framework (http://robotframework.org/)• Our QA engineer has developed components to launch

Couchbase Lite / Sync Gateway and setup tests between them.• Swappable versions of client and sync gateway means better

regression testing• Cross platform (python) framework means that one test

scenario can be reused for all product versions

Page 15: CBJUG Meetup June 10th

ON THE MENU FOR 1.3 (SUBJECT TO CHANGE, BUT PROBABLY NOT)• Document TTL (Time To Live)• Logging output to Sync Gateway• Huge logging overhaul (especially for .NET)• Automatic revision pruning• OpenID Connect Authentication

Page 16: CBJUG Meetup June 10th

DOCUMENT TTL

• A new API for setting an “expiration date” for documents.• After the expiration date has passed, the document will be

purged from the database• Also settable via a special property in document body

Page 17: CBJUG Meetup June 10th

LOGGING TO SYNC GATEWAY

• Logs can sometimes be hard to find, or retrieve (especially on mobile devices)• This new feature inserts log statements into a database, and

replicates them to Sync Gateway (purging them in the process)• After that the logs can be downloaded easily and sent with

support requests, etc

Page 18: CBJUG Meetup June 10th

LOGGING OVERHAUL

• Logging is now more consistent between platforms• .NET has seen the biggest change: • Logging is customizable via domain (each domain can have a

different verbosity)• Desktop builds no longer log to Console (not always available,

and performance problem)• Customizable via app.config (no recompile needed!)

Page 19: CBJUG Meetup June 10th

AUTOMATIC REVISION PRUNING

• Already available with ForestDB, but 1.3 brings this functionality to SQLite• Revision history count will automatically be kept below the

maximum depth (as opposed to needing a call to Compact)• Note: Compact is still advised to clean up attachments

Page 20: CBJUG Meetup June 10th

OPENID CONNECT AUTHENTICATION

• Allows use of single sign on (SSO) to authenticate and create users in Sync Gateway• On the client side, we will work to make this as seamless as

possible (the only thing needed will be to retrieve a token manually via the URL that the library will provide)

Page 21: CBJUG Meetup June 10th

WE’D APPRECIATE ANY HELP

The release is coming up and so the CI builds are getting more and more stable. If you have some time, play around with the bleeding edge builds and let us know about any problems you find! Pull requests / issues welcome in English or Japanese.

Page 22: CBJUG Meetup June 10th

THANK YOU FOR YOUR TIME

QUESTIONS? COMMENTS? ANECDOTES? STORIES? JOKES?

Slides: http://www.slideshare.net/couchbasejapan