{"action":"created","issue":{"url":"https://api.github.com/repos/Azure/azure-functions-durable-extension/issues/128","repository_url":"https://api.github.com/repos/Azure/azure-functions-durable-extension","labels_url":"https://api.github.com/repos/Azure/azure-functions-durable-extension/issues/128/labels{/name}","comments_url":"https://api.github.com/repos/Azure/azure-functions-durable-extension/issues/128/comments","events_url":"https://api.github.com/repos/Azure/azure-functions-durable-extension/issues/128/events","html_url":"https://github.com/Azure/azure-functions-durable-extension/issues/128","id":287798392,"number":128,"title":"DurableFunctionsHubHistory is serializing inputs with the $type which could cause breaking changes.","user":{"login":"SimonLuckenuik","id":13141534,"avatar_url":"https://avatars3.githubusercontent.com/u/13141534?v=4","gravatar_id":"","url":"https://api.github.com/users/SimonLuckenuik","html_url":"https://github.com/SimonLuckenuik","followers_url":"https://api.github.com/users/SimonLuckenuik/followers","following_url":"https://api.github.com/users/SimonLuckenuik/following{/other_user}","gists_url":"https://api.github.com/users/SimonLuckenuik/gists{/gist_id}","starred_url":"https://api.github.com/users/SimonLuckenuik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SimonLuckenuik/subscriptions","organizations_url":"https://api.github.com/users/SimonLuckenuik/orgs","repos_url":"https://api.github.com/users/SimonLuckenuik/repos","events_url":"https://api.github.com/users/SimonLuckenuik/events{/privacy}","received_events_url":"https://api.github.com/users/SimonLuckenuik/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-01-11T14:08:49Z","updated_at":"2018-04-16T00:32:57Z","closed_at":null,"author_association":"NONE","body":"Hi! \r\n\r\nI just saw in the DurableFunctionsHubHistory table that serialization for Input of a workflow is using a '$type' property (\"$type\":\"My.Namespace.ClassName, My.Assembly\") for an EventType of ExecutionStarted, which in my view is usually a big \"no\" considering the unforeseen breaking changes that this kind of serialization provides. \r\n\r\nConsidering that we are already providing the type when deserializing from the context that information is not necessary to keep in the payload. Moreover it means that fixing a typo in the class name or namespace that I use to generate the payload with be a breaking change which is not usually something expected with JSON payloads. \r\n\r\nCurrently, when fetching my input from a workflow, I directly provide the class which I want to use for deserialization:\r\n`var input = _orchestrationCtx.GetInput<My.Namespace.ClassName>();`\r\n\r\nI think that issue adds more importance to issue #65, to prevent payload breaking changes by allowing developers to customize how to store and restore data over time. "},"comment":{"url":"https://api.github.com/repos/Azure/azure-functions-durable-extension/issues/comments/381450773","html_url":"https://github.com/Azure/azure-functions-durable-extension/issues/128#issuecomment-381450773","issue_url":"https://api.github.com/repos/Azure/azure-functions-durable-extension/issues/128","id":381450773,"user":{"login":"SimonLuckenuik","id":13141534,"avatar_url":"https://avatars3.githubusercontent.com/u/13141534?v=4","gravatar_id":"","url":"https://api.github.com/users/SimonLuckenuik","html_url":"https://github.com/SimonLuckenuik","followers_url":"https://api.github.com/users/SimonLuckenuik/followers","following_url":"https://api.github.com/users/SimonLuckenuik/following{/other_user}","gists_url":"https://api.github.com/users/SimonLuckenuik/gists{/gist_id}","starred_url":"https://api.github.com/users/SimonLuckenuik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SimonLuckenuik/subscriptions","organizations_url":"https://api.github.com/users/SimonLuckenuik/orgs","repos_url":"https://api.github.com/users/SimonLuckenuik/repos","events_url":"https://api.github.com/users/SimonLuckenuik/events{/privacy}","received_events_url":"https://api.github.com/users/SimonLuckenuik/received_events","type":"User","site_admin":false},"created_at":"2018-04-16T00:32:57Z","updated_at":"2018-04-16T00:32:57Z","author_association":"NONE","body":"I just had a look, for an EventType _ExecutionStarted_, the _Input_ property contains $type in the DurableFunctionsHubHistory table. I also have $type in an EventType _ContinueAsNew_ in the _Result_ property. For an EventType _ExecutionCompleted_, however, the _Result_ property doesn't contain $type."}}
{"actor":{"display_login":"SimonLuckenuik"}}