Some servers, like Firebase, Parse and CouchDB already define strict communication protocols for clients, and were good fits for Ember Data. In contrast, servers written in Rails, Node, and Django tend to be written in a "REST-style" but lack the precision necessary for drop-in client code. The REST Adapter in Ember Data implicitly defined a protocol that custom servers could implement to get a drop-in client for all of their resources. Record creation, update, and deletion was defined implicitly by the Ember Data library and was close to conventions already in wide use by Rails, Django and Node developers. The goals of the media type are to balance: A generic media type that can work across a broad set of use cases, including the generally used relationship types Similarity to existing server-side framework practices (and human readability for debugging) Ease of implementation on the server side Ease of implementation on the client side