{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/orleans/issues/343","labels_url":"https://api.github.com/repos/dotnet/orleans/issues/343/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/orleans/issues/343/comments","events_url":"https://api.github.com/repos/dotnet/orleans/issues/343/events","html_url":"https://github.com/dotnet/orleans/issues/343","id":69153306,"number":343,"title":"Define a programming model/API for Event Sourcing","user":{"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},"labels":[{"url":"https://api.github.com/repos/dotnet/orleans/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/dotnet/orleans/labels/help%20wanted","name":"help wanted","color":"159818"},{"url":"https://api.github.com/repos/dotnet/orleans/labels/under-investigation","name":"under-investigation","color":"207de5"}],"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":null,"comments":125,"created_at":"2015-04-17T14:47:46Z","updated_at":"2015-12-08T19:05:59Z","closed_at":null,"body":"It would help to have a general programming model for using Event Sourcing as an approach to managing grain state. Likely that would be an alternative or an extension to the declarative persistence model. The goal is to have a unified model that would allow different implementations (and against different data stores), so that an app can pick and choose which ones to use."},"comment":{"url":"https://api.github.com/repos/dotnet/orleans/issues/comments/162983859","html_url":"https://github.com/dotnet/orleans/issues/343#issuecomment-162983859","issue_url":"https://api.github.com/repos/dotnet/orleans/issues/343","id":162983859,"user":{"login":"yevhen","id":107726,"avatar_url":"https://avatars.githubusercontent.com/u/107726?v=3","gravatar_id":"","url":"https://api.github.com/users/yevhen","html_url":"https://github.com/yevhen","followers_url":"https://api.github.com/users/yevhen/followers","following_url":"https://api.github.com/users/yevhen/following{/other_user}","gists_url":"https://api.github.com/users/yevhen/gists{/gist_id}","starred_url":"https://api.github.com/users/yevhen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yevhen/subscriptions","organizations_url":"https://api.github.com/users/yevhen/orgs","repos_url":"https://api.github.com/users/yevhen/repos","events_url":"https://api.github.com/users/yevhen/events{/privacy}","received_events_url":"https://api.github.com/users/yevhen/received_events","type":"User","site_admin":false},"created_at":"2015-12-08T19:05:59Z","updated_at":"2015-12-08T19:05:59Z","body":"> Event-sourced state require the definition of the Apply methods that transition the state - that can be simply called by QueuedGrain API during synchronisation.\r\n\r\nHow does QueuedGrain not requires the definition of similar handlers for update messages, if update messages are also diffs? Magic?"}}