As data is in most applications a very important asset (why should we otherwise use applications), it worries me that the data layer in Ember remains unfinished. Some people call Ember Data a mature spike, others find it a stable library with some tricky edge cases, others start referring to alternative libraries such as Ember model and EPF.
It is clear that if you want to build ambitious single page apps, you need - in addition to routes, controllers, templates and views - a stable and mature data fetching and persistance framework. As the learning curve for most SPA frameworks (including Ember) is steep, it is my view that the framework should include a data layer that is well tuned to the rest of the framework. Only then, you obtain a seamless client side end-to-end solition: from the URL to the JSON request and back from the JSON response to the browser screen.
So my question is: What is the future planning / roadmap of Ember Data ?
At this moment all references to Ember data mention “work in progress - not production ready”. When will a first RC or version 1.0 be available ? Will this take another 2 months, 6 months or 2 years ?
When will good documentation and sample code become available ? There is a need in 3 areas:
Samples on how to fetch data: single entity, relationships, route syntax for finding data, how to debug and monitor models, etc.
Samples on how to persist data: creation of new records, update, delete; how to handle data validation, etc.
Edge cases (but fundamental in a SPA): how to handle slow connections (currently, any activity while in inFlight status freezes the whole app), how to recover from becameError state (REST API down) and becameInvalid state (422 validation problem); how to handle large data sets (with and without binding), etc.
I hope the core team of Ember data can share some insights on the planning and roadmap of the project. This would give Ember JS developers a better feeling on how to proceed with the data layer of their application … after all, a data framework is not something you simply replace overnight via a quick refactoring.
Any feedback is welcome !