{"action":"created","issue":{"url":"https://api.github.com/repos/w3c-social/activitypump/issues/34","labels_url":"https://api.github.com/repos/w3c-social/activitypump/issues/34/labels{/name}","comments_url":"https://api.github.com/repos/w3c-social/activitypump/issues/34/comments","events_url":"https://api.github.com/repos/w3c-social/activitypump/issues/34/events","html_url":"https://github.com/w3c-social/activitypump/issues/34","id":81521727,"number":34,"title":"Transient and garbage collectable activities","user":{"login":"cwebber","id":55698,"avatar_url":"https://avatars.githubusercontent.com/u/55698?v=3","gravatar_id":"","url":"https://api.github.com/users/cwebber","html_url":"https://github.com/cwebber","followers_url":"https://api.github.com/users/cwebber/followers","following_url":"https://api.github.com/users/cwebber/following{/other_user}","gists_url":"https://api.github.com/users/cwebber/gists{/gist_id}","starred_url":"https://api.github.com/users/cwebber/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cwebber/subscriptions","organizations_url":"https://api.github.com/users/cwebber/orgs","repos_url":"https://api.github.com/users/cwebber/repos","events_url":"https://api.github.com/users/cwebber/events{/privacy}","received_events_url":"https://api.github.com/users/cwebber/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-05-27T16:37:33Z","updated_at":"2015-12-13T18:34:08Z","closed_at":null,"body":"The current drafting of ActivityPump more or less requires that any objects or activities must be preserved (or at minimum, a shell of them must be preserved) forever.  This comes from two things:\r\n\r\n - The requirement to de-duplicate incoming activities means that all activities must have URIs.  Theoretically one could use urn:uuid: identifiers as ids, but\r\n - The requirement to dereference activities/objects/etc and verify that they exist to prevent spoofing attacks means that the URIs must be something dereferencable such as HTTP\r\n\r\nHowever, having some activities and objects be \"transient\" or garbage collectable is desirable:\r\n - Some kinds of social activities, such as playing games (\"you hit the goblin!  you hit the goblin!\") generate many very small activities.  Propagating these may be worthwhile, but keeping them around might not be.\r\n - There are privacy concerns related to some kinds of private communication and direct messaging which are \"off the record\".  Keeping these logged forever can be harmful to users who expect plausible deniability."},"comment":{"url":"https://api.github.com/repos/w3c-social/activitypump/issues/comments/164286268","html_url":"https://github.com/w3c-social/activitypump/issues/34#issuecomment-164286268","issue_url":"https://api.github.com/repos/w3c-social/activitypump/issues/34","id":164286268,"user":{"login":"jaywink","id":1174866,"avatar_url":"https://avatars.githubusercontent.com/u/1174866?v=3","gravatar_id":"","url":"https://api.github.com/users/jaywink","html_url":"https://github.com/jaywink","followers_url":"https://api.github.com/users/jaywink/followers","following_url":"https://api.github.com/users/jaywink/following{/other_user}","gists_url":"https://api.github.com/users/jaywink/gists{/gist_id}","starred_url":"https://api.github.com/users/jaywink/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaywink/subscriptions","organizations_url":"https://api.github.com/users/jaywink/orgs","repos_url":"https://api.github.com/users/jaywink/repos","events_url":"https://api.github.com/users/jaywink/events{/privacy}","received_events_url":"https://api.github.com/users/jaywink/received_events","type":"User","site_admin":false},"created_at":"2015-12-13T18:34:08Z","updated_at":"2015-12-13T18:34:08Z","body":"> I can't think of an example off the top of my head but i suspect this will be too limited. I can imagine social networks where you would want a video or picture be posted and have people interact with it but after a set period of time the object expires and is no longer visible.\r\n\r\nExpiry is already a thing in some servers - for example Hubzilla (previously Redmatrix), allows setting an expiry on items. But, to be honest, isn't this more to do with content attributes via some AS2 extension for example rather than API/protocol?\r\n\r\nAnother consideration towards garbage collection can come from pure house keeping. Some larger diaspora* pods already do this simply because they want to offer maximum performance to current users and thus are happy to purge ancient items from years back, even if that means the object is \"just gone\". Especially if the item originates from another server.\r\n\r\nI wouldn't personally worry too much about defining how to keep items forever or making it a must. If an item cannot be found then it is removed. That is how the internet works :)"}}