{"action":"created","issue":{"url":"https://api.github.com/repos/mlidbom/Composable.Monolithic/issues/3","labels_url":"https://api.github.com/repos/mlidbom/Composable.Monolithic/issues/3/labels{/name}","comments_url":"https://api.github.com/repos/mlidbom/Composable.Monolithic/issues/3/comments","events_url":"https://api.github.com/repos/mlidbom/Composable.Monolithic/issues/3/events","html_url":"https://github.com/mlidbom/Composable.Monolithic/issues/3","id":106526838,"number":3,"title":"Support for refactoring and enriching events and history in the event store","user":{"login":"mlidbom","id":143203,"avatar_url":"https://avatars.githubusercontent.com/u/143203?v=3","gravatar_id":"","url":"https://api.github.com/users/mlidbom","html_url":"https://github.com/mlidbom","followers_url":"https://api.github.com/users/mlidbom/followers","following_url":"https://api.github.com/users/mlidbom/following{/other_user}","gists_url":"https://api.github.com/users/mlidbom/gists{/gist_id}","starred_url":"https://api.github.com/users/mlidbom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mlidbom/subscriptions","organizations_url":"https://api.github.com/users/mlidbom/orgs","repos_url":"https://api.github.com/users/mlidbom/repos","events_url":"https://api.github.com/users/mlidbom/events{/privacy}","received_events_url":"https://api.github.com/users/mlidbom/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/mlidbom/Composable.Monolithic/labels/big","name":"big","color":"000000"},{"url":"https://api.github.com/repos/mlidbom/Composable.Monolithic/labels/critical","name":"critical","color":"e11d21"},{"url":"https://api.github.com/repos/mlidbom/Composable.Monolithic/labels/feature","name":"feature","color":"006b75"}],"state":"closed","locked":false,"assignee":{"login":"mlidbom","id":143203,"avatar_url":"https://avatars.githubusercontent.com/u/143203?v=3","gravatar_id":"","url":"https://api.github.com/users/mlidbom","html_url":"https://github.com/mlidbom","followers_url":"https://api.github.com/users/mlidbom/followers","following_url":"https://api.github.com/users/mlidbom/following{/other_user}","gists_url":"https://api.github.com/users/mlidbom/gists{/gist_id}","starred_url":"https://api.github.com/users/mlidbom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mlidbom/subscriptions","organizations_url":"https://api.github.com/users/mlidbom/orgs","repos_url":"https://api.github.com/users/mlidbom/repos","events_url":"https://api.github.com/users/mlidbom/events{/privacy}","received_events_url":"https://api.github.com/users/mlidbom/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/mlidbom/Composable.Monolithic/milestones/1","html_url":"https://github.com/mlidbom/Composable.Monolithic/milestones/3.1%20Refactoring%20Events","labels_url":"https://api.github.com/repos/mlidbom/Composable.Monolithic/milestones/1/labels","id":1306099,"number":1,"title":"3.1 Refactoring Events","description":"Greatly enhance the support for refactoring events in an agile fashion. \r\nMake sure that they can be renamed without changing the data in the store at all. \r\nDo support updating the store after the fact when all readers have the new code with the new names. \r\nChange the schema of the store so that it fully supports editing history without losing the order of the events.","creator":{"login":"mlidbom","id":143203,"avatar_url":"https://avatars.githubusercontent.com/u/143203?v=3","gravatar_id":"","url":"https://api.github.com/users/mlidbom","html_url":"https://github.com/mlidbom","followers_url":"https://api.github.com/users/mlidbom/followers","following_url":"https://api.github.com/users/mlidbom/following{/other_user}","gists_url":"https://api.github.com/users/mlidbom/gists{/gist_id}","starred_url":"https://api.github.com/users/mlidbom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mlidbom/subscriptions","organizations_url":"https://api.github.com/users/mlidbom/orgs","repos_url":"https://api.github.com/users/mlidbom/repos","events_url":"https://api.github.com/users/mlidbom/events{/privacy}","received_events_url":"https://api.github.com/users/mlidbom/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":1,"state":"open","created_at":"2015-09-15T10:22:24Z","updated_at":"2015-11-19T16:26:51Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2015-09-15T10:23:48Z","updated_at":"2015-11-19T16:26:51Z","closed_at":"2015-11-19T16:26:51Z","body":"Currently hhanging data in the event in any way will corrupt the insertion order of the events since we rely on SQL server rowversion. We need to fix this and will take the opportunity to make the refactoring story for events much more palatable.\r\n\r\nGoals:\r\n* [b ] Schema(\r\n  * [x] Enable renaming events on the DB level quickly and easily (separate table). \r\n  * [x]  Enable enriching or refactoring of existing events (Implemented by replacing them so that no history is lost.)\r\n  * [x]  Enable inserting new events at specific points in the stream\r\n    * [x]  Achieving this means that we cannot rely on an identity column to track insertion order of the events. We thought that we were pretty much done with the schema until we realized this...\r\n* [x]  Framework support\r\n  * [x]  Support for refactoring without immediately changing the store data\r\n    * [x]  #4 Renaming events through Attributes retaining compatibility with the store. \r\n    * [x]  Renaming Paths (Namespaces and/or parent classes) while maintaining compatibility with the store.\r\n    * [x]  Interfaces that given the history of an aggregate are able to mutate the history of the aggregate. \r\n      *  [x] Enrich events (Implemented by replacing them so that no history is lost.)\r\n      *  [x] Refactor events (Implemented by replacing them so that no history is lost.)\r\n      *  [x] Insert events\r\n    *  [LATER] Interfaces that given any event of a specific type can refactor/enrich them without knowing the context of the aggregate. \r\n  *  [x] Pushing the changes into the store automatically and then ignoring the refactorings and \r\n    * [LATER] warning that they should be removed now that the store is updated..\r\n"},"comment":{"url":"https://api.github.com/repos/mlidbom/Composable.Monolithic/issues/comments/158108597","html_url":"https://github.com/mlidbom/Composable.Monolithic/issues/3#issuecomment-158108597","issue_url":"https://api.github.com/repos/mlidbom/Composable.Monolithic/issues/3","id":158108597,"user":{"login":"mlidbom","id":143203,"avatar_url":"https://avatars.githubusercontent.com/u/143203?v=3","gravatar_id":"","url":"https://api.github.com/users/mlidbom","html_url":"https://github.com/mlidbom","followers_url":"https://api.github.com/users/mlidbom/followers","following_url":"https://api.github.com/users/mlidbom/following{/other_user}","gists_url":"https://api.github.com/users/mlidbom/gists{/gist_id}","starred_url":"https://api.github.com/users/mlidbom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mlidbom/subscriptions","organizations_url":"https://api.github.com/users/mlidbom/orgs","repos_url":"https://api.github.com/users/mlidbom/repos","events_url":"https://api.github.com/users/mlidbom/events{/privacy}","received_events_url":"https://api.github.com/users/mlidbom/received_events","type":"User","site_admin":false},"created_at":"2015-11-19T16:26:51Z","updated_at":"2015-11-19T16:26:51Z","body":"Now implemented on the develop branch :)"}}