Since early 2014, the Usergrid team has been working on a version of Usergrid known informally as Usergrid 2. The effort was originally started as a refactoring to clean up the codebase and make it easier to maintain, but the work evolved into a new persistence engine for Usergrid.
The new Usergrid 2 engine is made up of a set of modules with clearly defined interfaces. It uses Multi-version Concurrency Control instead of distributed locks. It uses RxJava for concurrency. And the new engine uses ElasticSearch to implement indexing and query. Usergrid 2 provides the same REST API as Usergrid 1, but inside it is powered by this new engine. Usergrid 2 was never released, but some have tested it, put it into production, fixed lots of problems and hit some nice performance numbers, for example: How Usergrid scaled to over 10,000 requests per second: http://apigee.com/about/blog/technology/how-usergrid-scaled-over-10000-requests-second The latest version of Usergrid 2 is informally known as Usergrid 2.1 and you can find it in the Git “release” branch. Sidebar: state of Usergrid branches: - release: the well-tested “Usergrid 2.1” code base - master: this is our development branch (with Jersey 2 and other changes), currently called 2.1.1 - 1.x: this is the 1.x code base, latest release was 1.0.2 I propose that we make a release from the release branch and call it Apache Usergrid 2.1.0. I’d also like to make a convenience binary release with the stack (i.e. ROOT.war), portal and an updated installation guide. There are some drawbacks to Usergrid 2: it is more difficult to run in production due to the addition of ElasticSearch, it depends on AWS SQS for queueing and there are no tools for migrating from Usergrid 1.x — but despite that, in my view, Usergrid 2.1.0 is ready for release and what we want people to be using. I'm not calling a vote, that will come later, but I would like to know your thoughts and concerns about Usergrid 2 and this proposal. Thanks, Dave
