{"action":"created","issue":{"url":"https://api.github.com/repos/NREL/api-umbrella/issues/85","labels_url":"https://api.github.com/repos/NREL/api-umbrella/issues/85/labels{/name}","comments_url":"https://api.github.com/repos/NREL/api-umbrella/issues/85/comments","events_url":"https://api.github.com/repos/NREL/api-umbrella/issues/85/events","html_url":"https://github.com/NREL/api-umbrella/issues/85","id":53757342,"number":85,"title":"Support for Multiple Data Stores","user":{"login":"darylrobbins","id":2270905,"avatar_url":"https://avatars.githubusercontent.com/u/2270905?v=3","gravatar_id":"","url":"https://api.github.com/users/darylrobbins","html_url":"https://github.com/darylrobbins","followers_url":"https://api.github.com/users/darylrobbins/followers","following_url":"https://api.github.com/users/darylrobbins/following{/other_user}","gists_url":"https://api.github.com/users/darylrobbins/gists{/gist_id}","starred_url":"https://api.github.com/users/darylrobbins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/darylrobbins/subscriptions","organizations_url":"https://api.github.com/users/darylrobbins/orgs","repos_url":"https://api.github.com/users/darylrobbins/repos","events_url":"https://api.github.com/users/darylrobbins/events{/privacy}","received_events_url":"https://api.github.com/users/darylrobbins/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-01-08T14:42:39Z","updated_at":"2015-01-08T17:35:33Z","closed_at":null,"body":"I am looking at porting api-umbrella to use Amazon DynamoDB instead of MongoDB. The current design is using Mongo-specific ORM libraries in the gatekeeper and web interface. Any thoughts on how we could abstract away from any specific storage provider, so I can contributed my code back to the project? Thanks!"},"comment":{"url":"https://api.github.com/repos/NREL/api-umbrella/issues/comments/69216405","html_url":"https://github.com/NREL/api-umbrella/issues/85#issuecomment-69216405","issue_url":"https://api.github.com/repos/NREL/api-umbrella/issues/85","id":69216405,"user":{"login":"GUI","id":12112,"avatar_url":"https://avatars.githubusercontent.com/u/12112?v=3","gravatar_id":"","url":"https://api.github.com/users/GUI","html_url":"https://github.com/GUI","followers_url":"https://api.github.com/users/GUI/followers","following_url":"https://api.github.com/users/GUI/following{/other_user}","gists_url":"https://api.github.com/users/GUI/gists{/gist_id}","starred_url":"https://api.github.com/users/GUI/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GUI/subscriptions","organizations_url":"https://api.github.com/users/GUI/orgs","repos_url":"https://api.github.com/users/GUI/repos","events_url":"https://api.github.com/users/GUI/events{/privacy}","received_events_url":"https://api.github.com/users/GUI/received_events","type":"User","site_admin":false},"created_at":"2015-01-08T17:35:33Z","updated_at":"2015-01-08T17:35:33Z","body":"Unfortunately, I think this will be a bit tricky as things exist right now. While it might be possible to abstract things at the ORM-level ([jugglingdb](https://github.com/1602/jugglingdb) might be a candidate for the NodeJS side of things, but I don't know of any equivalent abstraction for the Ruby world), I think we are somewhat reliant on a couple of MongoDB characteristics that don't exist in DynamoDB. For example, we use MongoDB's [TTL capabilities](http://docs.mongodb.org/manual/tutorial/expire-data/) to distribute rate limit information among a multi-node cluster. I'm not super familiar with DynamoDB, but a quick search seems to indicate it doesn't support this specific feature. It's certainly possible to address this kind of thing in other ways, it just becomes trickier, since swapping MongoDB for DynamoDB isn't a one-to-one mapping.\r\n\r\nBut we'd certainly be open to these kind of abstractions. I don't necessarily want to be tied to MongoDB, it just happens to be the database we're currently using for this project. So while we have become somewhat tied to it, since that's simply what we've been using, I don't think there's a ton of MongoDB specific functionality we require.\r\n\r\nMay I ask what's driving this, though? Is it the operational simplicity of DynamoDB, or something else? If it's that simplicity you get with running DynamoDB, would some MongoDB-as-a-service operating on AWS work for you? For example, something like [MongoLab](https://mongolab.com), [ObjectRocket](https://objectrocket.com), or [Compose.io](https://www.compose.io)?"}}