{"action":"created","issue":{"url":"https://api.github.com/repos/otobus/event_bus/issues/77","repository_url":"https://api.github.com/repos/otobus/event_bus","labels_url":"https://api.github.com/repos/otobus/event_bus/issues/77/labels{/name}","comments_url":"https://api.github.com/repos/otobus/event_bus/issues/77/comments","events_url":"https://api.github.com/repos/otobus/event_bus/issues/77/events","html_url":"https://github.com/otobus/event_bus/issues/77","id":373235821,"node_id":"MDU6SXNzdWUzNzMyMzU4MjE=","number":77,"title":"Tracing Causation","user":{"login":"ShaneWilton","id":285821,"node_id":"MDQ6VXNlcjI4NTgyMQ==","avatar_url":"https://avatars2.githubusercontent.com/u/285821?v=4","gravatar_id":"","url":"https://api.github.com/users/ShaneWilton","html_url":"https://github.com/ShaneWilton","followers_url":"https://api.github.com/users/ShaneWilton/followers","following_url":"https://api.github.com/users/ShaneWilton/following{/other_user}","gists_url":"https://api.github.com/users/ShaneWilton/gists{/gist_id}","starred_url":"https://api.github.com/users/ShaneWilton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ShaneWilton/subscriptions","organizations_url":"https://api.github.com/users/ShaneWilton/orgs","repos_url":"https://api.github.com/users/ShaneWilton/repos","events_url":"https://api.github.com/users/ShaneWilton/events{/privacy}","received_events_url":"https://api.github.com/users/ShaneWilton/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2018-10-23T22:55:07Z","updated_at":"2018-10-24T02:05:54Z","closed_at":"2018-10-24T01:40:07Z","author_association":"CONTRIBUTOR","body":"Currently, EventBus supports setting a `transaction_id` on events, in order to trace chains of related events. This works for determining what events are correlated, but is insufficient for reconstructing the precise causal relationships between events.\r\n\r\nImagine the following series of events:\r\n\r\n```\r\n       /-> C -> D\r\nA -> B \r\n       \\-> E\r\n``` \r\n\r\nAs currently implemented, all of the above events will have the same `transaction_id`, and so are obviously correlated. It is not possible, however, to determine that `D` was caused by `C`, which was caused by `B`, and so on.\r\n\r\nOne possible solution to this would be extending the event schema to include an additional field for `causation_id`, which could be set to the `id` of the previous event in the chain. This is a pattern described by Greg Young in his definition of Event Sourcing. Another explanation is available here: https://blog.arkency.com/correlation-id-and-causation-id-in-evented-systems/\r\n\r\nThe existing `transaction_id` field fills effectively the same role as the `correlation_id`, and doesn't need to be changed in my opinion :)\r\n\r\nWhat are your thoughts on this proposal?"},"comment":{"url":"https://api.github.com/repos/otobus/event_bus/issues/comments/432485545","html_url":"https://github.com/otobus/event_bus/issues/77#issuecomment-432485545","issue_url":"https://api.github.com/repos/otobus/event_bus/issues/77","id":432485545,"node_id":"MDEyOklzc3VlQ29tbWVudDQzMjQ4NTU0NQ==","user":{"login":"mustafaturan","id":637021,"node_id":"MDQ6VXNlcjYzNzAyMQ==","avatar_url":"https://avatars3.githubusercontent.com/u/637021?v=4","gravatar_id":"","url":"https://api.github.com/users/mustafaturan","html_url":"https://github.com/mustafaturan","followers_url":"https://api.github.com/users/mustafaturan/followers","following_url":"https://api.github.com/users/mustafaturan/following{/other_user}","gists_url":"https://api.github.com/users/mustafaturan/gists{/gist_id}","starred_url":"https://api.github.com/users/mustafaturan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mustafaturan/subscriptions","organizations_url":"https://api.github.com/users/mustafaturan/orgs","repos_url":"https://api.github.com/users/mustafaturan/repos","events_url":"https://api.github.com/users/mustafaturan/events{/privacy}","received_events_url":"https://api.github.com/users/mustafaturan/received_events","type":"User","site_admin":false},"created_at":"2018-10-24T02:05:54Z","updated_at":"2018-10-24T02:05:54Z","author_association":"COLLABORATOR","body":"In my sample above; the `OrderFulfiller ` is only responsible from one event topic"}}
{"actor":{"display_login":"mustafaturan"}}