{"action":"created","issue":{"url":"https://api.github.com/repos/mozilla/datomish-user-agent-service/issues/26","repository_url":"https://api.github.com/repos/mozilla/datomish-user-agent-service","labels_url":"https://api.github.com/repos/mozilla/datomish-user-agent-service/issues/26/labels{/name}","comments_url":"https://api.github.com/repos/mozilla/datomish-user-agent-service/issues/26/comments","events_url":"https://api.github.com/repos/mozilla/datomish-user-agent-service/issues/26/events","html_url":"https://github.com/mozilla/datomish-user-agent-service/issues/26","id":190793083,"number":26,"title":"Vocabulary and API for preferences storage","user":{"login":"rnewman","id":91722,"avatar_url":"https://avatars.githubusercontent.com/u/91722?v=3","gravatar_id":"","url":"https://api.github.com/users/rnewman","html_url":"https://github.com/rnewman","followers_url":"https://api.github.com/users/rnewman/followers","following_url":"https://api.github.com/users/rnewman/following{/other_user}","gists_url":"https://api.github.com/users/rnewman/gists{/gist_id}","starred_url":"https://api.github.com/users/rnewman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rnewman/subscriptions","organizations_url":"https://api.github.com/users/rnewman/orgs","repos_url":"https://api.github.com/users/rnewman/repos","events_url":"https://api.github.com/users/rnewman/events{/privacy}","received_events_url":"https://api.github.com/users/rnewman/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2016-11-21T18:03:30Z","updated_at":"2016-11-21T21:12:01Z","closed_at":null,"body":"Open questions:\r\n\r\n- I assume that we want prefs to live in memory for speed. Should these be in memory in the frontend (which requires a pref change notification from UAS to each frontend, and allows different windows to get out of sync), in memory in the UAS (which just makes lookups faster), or both?\r\n- If in memory _anywhere_: is this a write-through cache (modifies both disk and in-memory: safest, slow writes), write-around cache (writes to disk and invalidates the cache), or write-back (writes to cache, later flushes to disk: fastest, chance of losing data as in Gecko)?\r\n- What do we want to be able to model? String key-value pairs? Typed values? Do we want type constraints on preferences? Do we need loose keys (`\"foo.bar.asdlkasjoi21\" = 92`), or can we model prefs as a schema fragment in Datomish?\r\n- Do different windows get their own prefs? Do different apps/channels/etc. get their own prefs? In other words, is prefs a global namespace or scoped?\r\n\r\n@jsantell, what are you thinking?"},"comment":{"url":"https://api.github.com/repos/mozilla/datomish-user-agent-service/issues/comments/262068496","html_url":"https://github.com/mozilla/datomish-user-agent-service/issues/26#issuecomment-262068496","issue_url":"https://api.github.com/repos/mozilla/datomish-user-agent-service/issues/26","id":262068496,"user":{"login":"rnewman","id":91722,"avatar_url":"https://avatars.githubusercontent.com/u/91722?v=3","gravatar_id":"","url":"https://api.github.com/users/rnewman","html_url":"https://github.com/rnewman","followers_url":"https://api.github.com/users/rnewman/followers","following_url":"https://api.github.com/users/rnewman/following{/other_user}","gists_url":"https://api.github.com/users/rnewman/gists{/gist_id}","starred_url":"https://api.github.com/users/rnewman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rnewman/subscriptions","organizations_url":"https://api.github.com/users/rnewman/orgs","repos_url":"https://api.github.com/users/rnewman/repos","events_url":"https://api.github.com/users/rnewman/events{/privacy}","received_events_url":"https://api.github.com/users/rnewman/received_events","type":"User","site_admin":false},"created_at":"2016-11-21T21:12:01Z","updated_at":"2016-11-21T21:12:01Z","body":"The downside of using fixed keys is that you need to define prefs before you use them, and you can't use computed keys.\r\n\r\nThat said, computed keys (and often JSON values) are really just a hack that we use to store structured data in a non-structured key-value store, so I suspect we won't need them."}}
{"actor":{"display_login":"rnewman"}}