{"action":"created","issue":{"url":"https://api.github.com/repos/akka/akka/issues/19408","labels_url":"https://api.github.com/repos/akka/akka/issues/19408/labels{/name}","comments_url":"https://api.github.com/repos/akka/akka/issues/19408/comments","events_url":"https://api.github.com/repos/akka/akka/issues/19408/events","html_url":"https://github.com/akka/akka/pull/19408","id":126157251,"number":19408,"title":"#19395: added dedupe graph stage","user":{"login":"Horusiath","id":679705,"avatar_url":"https://avatars.githubusercontent.com/u/679705?v=3","gravatar_id":"","url":"https://api.github.com/users/Horusiath","html_url":"https://github.com/Horusiath","followers_url":"https://api.github.com/users/Horusiath/followers","following_url":"https://api.github.com/users/Horusiath/following{/other_user}","gists_url":"https://api.github.com/users/Horusiath/gists{/gist_id}","starred_url":"https://api.github.com/users/Horusiath/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Horusiath/subscriptions","organizations_url":"https://api.github.com/users/Horusiath/orgs","repos_url":"https://api.github.com/users/Horusiath/repos","events_url":"https://api.github.com/users/Horusiath/events{/privacy}","received_events_url":"https://api.github.com/users/Horusiath/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":27,"created_at":"2016-01-12T11:21:12Z","updated_at":"2016-01-13T10:27:48Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/akka/akka/pulls/19408","html_url":"https://github.com/akka/akka/pull/19408","diff_url":"https://github.com/akka/akka/pull/19408.diff","patch_url":"https://github.com/akka/akka/pull/19408.patch"},"body":"## Motivation\r\n\r\nAs mentioned in #19395 I've seen a missing, but somewhat useful feature of removing consecutive duplicates from the stream of events. This is not same as distinct/unique operation over the standard collections, since this would require potential buffering of the whole stream.\r\n\r\nExample:\r\n\r\n```scala\r\nSource(List(1, 1, 2, 2, 2, 1, 1, 1)).dedupe   // 1, 2, 1\r\n```\r\n\r\n## Changes\r\n\r\nThis PR introduces enhancement to akka Flow DSL in form of `dedupe` operation and correlated `Dedupe` graph stage. Correlated specs attached."},"comment":{"url":"https://api.github.com/repos/akka/akka/issues/comments/171247211","html_url":"https://github.com/akka/akka/pull/19408#issuecomment-171247211","issue_url":"https://api.github.com/repos/akka/akka/issues/19408","id":171247211,"user":{"login":"viktorklang","id":10871,"avatar_url":"https://avatars.githubusercontent.com/u/10871?v=3","gravatar_id":"","url":"https://api.github.com/users/viktorklang","html_url":"https://github.com/viktorklang","followers_url":"https://api.github.com/users/viktorklang/followers","following_url":"https://api.github.com/users/viktorklang/following{/other_user}","gists_url":"https://api.github.com/users/viktorklang/gists{/gist_id}","starred_url":"https://api.github.com/users/viktorklang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/viktorklang/subscriptions","organizations_url":"https://api.github.com/users/viktorklang/orgs","repos_url":"https://api.github.com/users/viktorklang/repos","events_url":"https://api.github.com/users/viktorklang/events{/privacy}","received_events_url":"https://api.github.com/users/viktorklang/received_events","type":"User","site_admin":false},"created_at":"2016-01-13T10:27:48Z","updated_at":"2016-01-13T10:27:48Z","body":"@rkuhn I prefer having the semantic operation, because then we can optimize it internally, having to lift things into structure means allocation and less opportunity for optimization."}}