{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/orleans/issues/1075","labels_url":"https://api.github.com/repos/dotnet/orleans/issues/1075/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/orleans/issues/1075/comments","events_url":"https://api.github.com/repos/dotnet/orleans/issues/1075/events","html_url":"https://github.com/dotnet/orleans/pull/1075","id":118828340,"number":1075,"title":"IStorageProvider methods parameter grainType from string to Type","user":{"login":"inadler","id":9049727,"avatar_url":"https://avatars.githubusercontent.com/u/9049727?v=3","gravatar_id":"","url":"https://api.github.com/users/inadler","html_url":"https://github.com/inadler","followers_url":"https://api.github.com/users/inadler/followers","following_url":"https://api.github.com/users/inadler/following{/other_user}","gists_url":"https://api.github.com/users/inadler/gists{/gist_id}","starred_url":"https://api.github.com/users/inadler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/inadler/subscriptions","organizations_url":"https://api.github.com/users/inadler/orgs","repos_url":"https://api.github.com/users/inadler/repos","events_url":"https://api.github.com/users/inadler/events{/privacy}","received_events_url":"https://api.github.com/users/inadler/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dotnet/orleans/labels/cla-signed","name":"cla-signed","color":"207de5"},{"url":"https://api.github.com/repos/dotnet/orleans/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":{"login":"sergeybykov","id":8248806,"avatar_url":"https://avatars.githubusercontent.com/u/8248806?v=3","gravatar_id":"","url":"https://api.github.com/users/sergeybykov","html_url":"https://github.com/sergeybykov","followers_url":"https://api.github.com/users/sergeybykov/followers","following_url":"https://api.github.com/users/sergeybykov/following{/other_user}","gists_url":"https://api.github.com/users/sergeybykov/gists{/gist_id}","starred_url":"https://api.github.com/users/sergeybykov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sergeybykov/subscriptions","organizations_url":"https://api.github.com/users/sergeybykov/orgs","repos_url":"https://api.github.com/users/sergeybykov/repos","events_url":"https://api.github.com/users/sergeybykov/events{/privacy}","received_events_url":"https://api.github.com/users/sergeybykov/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/dotnet/orleans/milestones/10","html_url":"https://github.com/dotnet/orleans/milestones/1.2.0","labels_url":"https://api.github.com/repos/dotnet/orleans/milestones/10/labels","id":1428780,"number":10,"title":"1.2.0","description":"","creator":{"login":"sergeybykov","id":8248806,"avatar_url":"https://avatars.githubusercontent.com/u/8248806?v=3","gravatar_id":"","url":"https://api.github.com/users/sergeybykov","html_url":"https://github.com/sergeybykov","followers_url":"https://api.github.com/users/sergeybykov/followers","following_url":"https://api.github.com/users/sergeybykov/following{/other_user}","gists_url":"https://api.github.com/users/sergeybykov/gists{/gist_id}","starred_url":"https://api.github.com/users/sergeybykov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sergeybykov/subscriptions","organizations_url":"https://api.github.com/users/sergeybykov/orgs","repos_url":"https://api.github.com/users/sergeybykov/repos","events_url":"https://api.github.com/users/sergeybykov/events{/privacy}","received_events_url":"https://api.github.com/users/sergeybykov/received_events","type":"User","site_admin":false},"open_issues":6,"closed_issues":3,"state":"open","created_at":"2015-11-25T07:31:55Z","updated_at":"2015-12-08T01:56:41Z","due_on":null,"closed_at":null},"comments":19,"created_at":"2015-11-25T12:40:55Z","updated_at":"2015-12-08T17:16:47Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/dotnet/orleans/pulls/1075","html_url":"https://github.com/dotnet/orleans/pull/1075","diff_url":"https://github.com/dotnet/orleans/pull/1075.diff","patch_url":"https://github.com/dotnet/orleans/pull/1075.patch"},"body":"In my `IStorageProvider` implementation, I need to have the grain type in order to have the complete meta data of the given grain. I'm sure others will find this change useful. \r\nThis is part of @shayhatsor's suggestion https://github.com/dotnet/orleans/issues/1035#issuecomment-159113341"},"comment":{"url":"https://api.github.com/repos/dotnet/orleans/issues/comments/162949689","html_url":"https://github.com/dotnet/orleans/pull/1075#issuecomment-162949689","issue_url":"https://api.github.com/repos/dotnet/orleans/issues/1075","id":162949689,"user":{"login":"shayhatsor","id":12084632,"avatar_url":"https://avatars.githubusercontent.com/u/12084632?v=3","gravatar_id":"","url":"https://api.github.com/users/shayhatsor","html_url":"https://github.com/shayhatsor","followers_url":"https://api.github.com/users/shayhatsor/followers","following_url":"https://api.github.com/users/shayhatsor/following{/other_user}","gists_url":"https://api.github.com/users/shayhatsor/gists{/gist_id}","starred_url":"https://api.github.com/users/shayhatsor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shayhatsor/subscriptions","organizations_url":"https://api.github.com/users/shayhatsor/orgs","repos_url":"https://api.github.com/users/shayhatsor/repos","events_url":"https://api.github.com/users/shayhatsor/events{/privacy}","received_events_url":"https://api.github.com/users/shayhatsor/received_events","type":"User","site_admin":false},"created_at":"2015-12-08T17:16:47Z","updated_at":"2015-12-08T17:16:47Z","body":"> So system grains are just Rendezvous Pub Sub grains?\r\n\r\nAFAIK currently yes, but we wish to be able to distinguish current and future internal grains.\r\n>You can easily solve that problem for that case, by either using a different storage provider for them and your app grains or same storage provider type with different name and differentiating by name\r\n\r\nwe thought about it, but then we'll have to do that for every future internal type.\r\n> Or we can add a method on the Storage Provider: IsOrleansInternalGrain(GrainReference)\r\na method like that can come handy, but where would you put it? on the GrainReference class ?\r\n\r\n>I am not suggesting that instead of passing Type, just saying how this could be solved alternatively.\r\n\r\nThat's exactly the thing. When you pass the type, I agree that it might be too much information for most scenarios, but when you need it, it's there."}}