{"action":"created","issue":{"url":"https://api.github.com/repos/playframework/playframework/issues/5296","labels_url":"https://api.github.com/repos/playframework/playframework/issues/5296/labels{/name}","comments_url":"https://api.github.com/repos/playframework/playframework/issues/5296/comments","events_url":"https://api.github.com/repos/playframework/playframework/issues/5296/events","html_url":"https://github.com/playframework/playframework/issues/5296","id":118151001,"number":5296,"title":"Use/support Scala cache as caching mechanism","user":{"login":"mdedetrich","id":2337269,"avatar_url":"https://avatars.githubusercontent.com/u/2337269?v=3","gravatar_id":"","url":"https://api.github.com/users/mdedetrich","html_url":"https://github.com/mdedetrich","followers_url":"https://api.github.com/users/mdedetrich/followers","following_url":"https://api.github.com/users/mdedetrich/following{/other_user}","gists_url":"https://api.github.com/users/mdedetrich/gists{/gist_id}","starred_url":"https://api.github.com/users/mdedetrich/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mdedetrich/subscriptions","organizations_url":"https://api.github.com/users/mdedetrich/orgs","repos_url":"https://api.github.com/users/mdedetrich/repos","events_url":"https://api.github.com/users/mdedetrich/events{/privacy}","received_events_url":"https://api.github.com/users/mdedetrich/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/playframework/playframework/labels/community","name":"community","color":"006b75"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2015-11-20T23:44:56Z","updated_at":"2015-11-27T14:14:52Z","closed_at":null,"body":"Scalacache can be seen here\r\nhttps://github.com/cb372/scalacache/issues/34\r\n\r\nReasons for\r\n1. Abstracts away many backends, not just ehCache. As an example, just newly added support for Java's new Caffeine cache\r\n2. Using the cache on functions is ridiculously easy with the memoize function\r\n3. Is config free, so its really easy for Play to provide their own config (using typesafe config) ontop of ScalaCache\r\n4. High performance with use of macros\r\n5. Is effortless to use. For any function that returns something of `Future[T]`, you can simply wrap the function in a `memoize` block.\r\n6. Great use of implicits mean that doing very fine grained caching mechanisms, with their own creation/destruction/TTL behaviours means that this is painless\r\n\r\nReasons against\r\n1. Only supports Scala 2.11 (due to Macros)\r\n2. Only written in Scala which means that calling it from Java can cause problems (although I believe the basic cache API, which is a `k/v` store, which they also provide, should be able to be called from Java fine). Not sure if they new function interface with JDK 8 + Scala 2.12 will change things.\r\n3. An external dependency that needs to be managed"},"comment":{"url":"https://api.github.com/repos/playframework/playframework/issues/comments/160148189","html_url":"https://github.com/playframework/playframework/issues/5296#issuecomment-160148189","issue_url":"https://api.github.com/repos/playframework/playframework/issues/5296","id":160148189,"user":{"login":"cb372","id":106760,"avatar_url":"https://avatars.githubusercontent.com/u/106760?v=3","gravatar_id":"","url":"https://api.github.com/users/cb372","html_url":"https://github.com/cb372","followers_url":"https://api.github.com/users/cb372/followers","following_url":"https://api.github.com/users/cb372/following{/other_user}","gists_url":"https://api.github.com/users/cb372/gists{/gist_id}","starred_url":"https://api.github.com/users/cb372/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cb372/subscriptions","organizations_url":"https://api.github.com/users/cb372/orgs","repos_url":"https://api.github.com/users/cb372/repos","events_url":"https://api.github.com/users/cb372/events{/privacy}","received_events_url":"https://api.github.com/users/cb372/received_events","type":"User","site_admin":false},"created_at":"2015-11-27T14:14:52Z","updated_at":"2015-11-27T14:14:52Z","body":"Hey there. I just spotted this. Let me know if you need any help with integration.\r\n\r\nI know of at least a couple of people who are using ScalaCache with Play, but proper integration is something I've been meaning to get around to for a while. (Did I really make that issue all the way back in March?)"}}