Aggregate v2.x is scheduled to be released in early February. This release has major changes that have been discussed by the Technical Steering Committee (TSC) behind Aggregate and I wanted to explain the rationale behind these changes and provide some guidance for Aggregate users.
Summary
Aggregate v2.x will not be installable on Google App Engine (GAE, appspot.com). You will only be able to install Aggregate v2.x on a standard cloud server (Digital Ocean, Vultr, Linode, Amazon EC2, Google CE, Azure VM) or on a local server.
Aggregate v2.x also removes features that are unsupported or deprecated (e.g., Google Fusion Tables, ODK Tables, and Google Accounts).
As far as ongoing development work on ODK servers, our focus will be:
- Aggregate v1.7.x: Critical bug fixes
- Aggregate v2.x: Minor features
- Central: Major features
If you use Google App Engine
You can continue using the Aggregate v1.x series, but we will only ship critical bug fixes. If you depend on Aggregate, upgrade to ODK Aggregate v1.7. Consider migrating to the more maintainable v2.x series on a standard cloud server when it's released. We'll provide more documentation to help in the coming weeks.
If you don't use Google App Engine
You can use the Aggregate v2.x series. We will continue to ship minor features with the goal of making the codebase more maintainable. Consider trying the Central betas to prepare for an eventual switch.
Why we are removing App Engine support
When we launched Aggregate in 2008, we chose GAE as the default platform because it provided easy-to-use, free, secure, and scalable infrastructure for users. The trade-off was that we would have to write custom code to deal with the various restrictions GAE had.
Since then, there have been hundreds of thousands of data collection campaigns that have run on GAE. We are proud of what we've achieved, and in order to achieve more, we have to revisit our assumptions.
Our assumptions in 2008 were that GAE would get easier and more free. That has simply not been the case. Over the last decade, GAE has become more difficult and more expensive. The key facts are:
- GAE is harder to setup than cloud servers from providers like Digital Ocean, Linode, and Vultr.
- GAE has a free tier, but Google requires a credit card or bank details on file. It's unlikely GAE will be free forever.
- GAE's complicated quotas make it hard for users to anticipate costs ahead of time.
- GAE's restrictions (e.g., killing long-running tasks, non-standard database) make maintaining Aggregate difficult and fixing user problems (especially at scale) very, very painful.
Given our available resources, it's unsustainable to continue GAE support. For that reason, we've removed GAE support in Aggregate v2.x.
Why major features aren't being added to Aggregate
Aggregate is built on technology that makes it hard to evolve. The TSC believes that over time, Central will grow into a better platform for addressing some of the major server features that the community has requested.
We continue to need your help adding documentation and minor features to Aggregate. If you depend on it, please head to GitHub and help. It's never been easier to contribute.
Does Aggregate v2 have anything to do with ODK 2
Nope. The v2 designation for Aggregate is because we use semantic versioning and when we make changes that are not backwards compatible, we must increment the major version number.
Older versions of Aggregate did have ODK 2 support, but all ODK 2 code has been removed from Aggregate. If you use ODK 2, try the Sync Endpoint instead.
I have a question you didn't answer
Ask it below