Meaning of the DS prefix in ember-data


I am a complete Ember n00b and just discovered ember-data. I was wondering why it’s different from the main library.

  • Firstly, why is it a separate module? I know it’s a good idea to decouple software modules but isn’t an Ember model such an important part of the library it could / should be included in the main Ember code?

  • Secondly, what’s up with the DS prefix. What does it mean? Data Store? Why can’t it be Ember.Model? It feels strange to use a different namespace for no apparent reason?

Just wondering, thanks all and looking forward to build some cool Ember app!


I’m far from an expert on this topic, but my understanding of Ember Data being a separate library has to do with the fact that, in the early days of Ember, it was focused on data binding in the views. For a long time, you had to write your own persistence library for Ember. And many did. Ember Data didn’t exist yet. Notice we’re currently at Ember 1.5.1 stable, but I don’t actually believe that Ember Data has officially hit 1.0. I think that, as of this writing, the latest release is 1.0.0.beta7.

Also, there have been a few “rewrites” of major parts of it in the past year or so.

Now, Ember Data is well developed (though it still isn’t officially 100% “production ready”), and if you’re just coming to the party, it’s a great time, because now you get a persistence library basically for free.

I invite others to chime in here, but that’s my understanding.

I’m less comfortable answering your second question, though I do believe that DS stands for data store.



It’s important to realise that Ember-Data doesn’t have to be the model layer. The model layer is simply the set of objects that represent (or model) the objects your system cares about from the real world. You could write your own persistence library, or just use AJAX calls to interface with an API, and everything would work fine, (discourse does this, for example).

I’m pretty sure DS standard for Data Store, yeah.

For an example of a lightweight model layer, take a look at


Thank you. Makes more sense now, was a little puzzling for a beginner like me. Will play a little more with and look at some alternatives once I get the hang of it.