{"action":"created","issue":{"url":"https://api.github.com/repos/erocci/erocci/issues/40","repository_url":"https://api.github.com/repos/erocci/erocci","labels_url":"https://api.github.com/repos/erocci/erocci/issues/40/labels{/name}","comments_url":"https://api.github.com/repos/erocci/erocci/issues/40/comments","events_url":"https://api.github.com/repos/erocci/erocci/issues/40/events","html_url":"https://github.com/erocci/erocci/issues/40","id":127951543,"number":40,"title":"etag should be uint64","user":{"login":"mdutoo","id":690874,"avatar_url":"https://avatars.githubusercontent.com/u/690874?v=3","gravatar_id":"","url":"https://api.github.com/users/mdutoo","html_url":"https://github.com/mdutoo","followers_url":"https://api.github.com/users/mdutoo/followers","following_url":"https://api.github.com/users/mdutoo/following{/other_user}","gists_url":"https://api.github.com/users/mdutoo/gists{/gist_id}","starred_url":"https://api.github.com/users/mdutoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mdutoo/subscriptions","organizations_url":"https://api.github.com/users/mdutoo/orgs","repos_url":"https://api.github.com/users/mdutoo/repos","events_url":"https://api.github.com/users/mdutoo/events{/privacy}","received_events_url":"https://api.github.com/users/mdutoo/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2016-01-21T15:36:57Z","updated_at":"2016-03-08T09:46:55Z","closed_at":null,"body":""},"comment":{"url":"https://api.github.com/repos/erocci/erocci/issues/comments/193691886","html_url":"https://github.com/erocci/erocci/issues/40#issuecomment-193691886","issue_url":"https://api.github.com/repos/erocci/erocci/issues/40","id":193691886,"user":{"login":"jeanparpaillon","id":832572,"avatar_url":"https://avatars.githubusercontent.com/u/832572?v=3","gravatar_id":"","url":"https://api.github.com/users/jeanparpaillon","html_url":"https://github.com/jeanparpaillon","followers_url":"https://api.github.com/users/jeanparpaillon/followers","following_url":"https://api.github.com/users/jeanparpaillon/following{/other_user}","gists_url":"https://api.github.com/users/jeanparpaillon/gists{/gist_id}","starred_url":"https://api.github.com/users/jeanparpaillon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeanparpaillon/subscriptions","organizations_url":"https://api.github.com/users/jeanparpaillon/orgs","repos_url":"https://api.github.com/users/jeanparpaillon/repos","events_url":"https://api.github.com/users/jeanparpaillon/events{/privacy}","received_events_url":"https://api.github.com/users/jeanparpaillon/received_events","type":"User","site_admin":false},"created_at":"2016-03-08T09:46:55Z","updated_at":"2016-03-08T09:46:55Z","body":"I think there is a misunderstanding about what we're talking about:\r\n* etag is the data rendered on the HTTP API. Obvisouly, it is a string, as HTTP spec defines it\r\n* serial is the internal serial number of the resource, existing only between erocci core and backends\r\n\r\nWhile there is a link between them (serial being used for generating etag), the serial is something simpler (for generating) and more compact (for storing).\r\nuint64 -> 4 bytes, upgrade = serial++\r\netag -> 32 bytes, uprgade = generates a new uuid or hashing the resource\r\n\r\nSo, except for really sound reason, I would *really* prefer identifying resource versions with a serial number rather than a text etag (uuid), while rendering it as a fully conform etag _wherever required_ (HTTP is not supposed to be the only protocol on top of erocci."}}