I’ve been meaning to get a tech update out for a while now, but we’ve just been so busy! I know, it’s a terrible excuse. We’re an open source project and I feel we owe a bit more transparency. That said, I’m going to do my best to try and make this a weekly update.
Let’s get on to the news.
Logistics
A few up front logistics items. We’ve moved the project to an organization page and repository. We can now be found here. You can either reclone your repository or change the origin url. Jump on IRC if you are having issues with that.
We are merging our previous dev branch into master permanently. Too much of our work is hidden without some digging because we focus on the dev branch currently. This has also led to confusion for testers as they run and then submit issues against the generally older master branch. After the merge we’ll continue operations as normal, only spinning branches for larger changes and point releases. Tags will be the primary method to track individual versions.
Data Store
The question of a backing data store for the system has come up many times, and we’ve finally settled on MongoDB. All our core Connectors and Collections are starting to use it with great results. Fear not for your simplicity though, one of the goals that we’ve had is to store data in a very basic and historical manner as well. To do that Connectors maintain a simple disk based JSON file of all their synced activity. This allows the Connector to easily reproduce current state if we need to change design goals, as well as provide you, the user, with a complete and simple backup forever.
Another important point is that the use of Mongo does not preclude other data stores. The Locker is an evolution with data and one pattern can not be used to reflect all data out there. We will highly suggest that people try and use the existing Mongo, but if a new data set truly does not work in Mongo we’ll definitely help work out integration of other data stores.
Query Interface
Now that the data is accessible in a more common and powerful manner (read: Mongo), it’s natural to want to query into that data. We’ve made a first pass implementation of a query API. Most of the parts described in *Core Locker Data Access API* are implemented and available at the /query endpoint of the core. This is an area we know needs growth and more iterations so I encourage you to play with it and come help us make it better.
Dashboard
The new dashboard look and feel is in from Justin Mecham.
This is definitely a step up and we’ll have a lot more coming in the user land soon.
Wrapping Up
All of the parts we talked about here, plus all the other work under the hood is being quickly wrapped up for a new release. This is an important release because it has a more unified stack, as well as a more user friendly interface. We’re still a bit more focussed on developers, but we’re getting really close to general use.
We’re tightening up and moving faster, so keep watching for more updates!
Way to go guys! Thanks for writing these updates as you go along. I’m itching to dive in but waiting for the barrier-to-entry threshold to be low enough that I believe it becomes an effective use of my (part) time. So these blog posts are very helpful to gauge whether or not the time is right for me. And after this post, it almost feels right