Implement data layer which routes resources to data providers.

By default items are saved to mongodb, but via setting it can be set to use elastic search.