{"action":"created","issue":{"url":"https://api.github.com/repos/reaktivity/nukleus-kafka.java/issues/5","repository_url":"https://api.github.com/repos/reaktivity/nukleus-kafka.java","labels_url":"https://api.github.com/repos/reaktivity/nukleus-kafka.java/issues/5/labels{/name}","comments_url":"https://api.github.com/repos/reaktivity/nukleus-kafka.java/issues/5/comments","events_url":"https://api.github.com/repos/reaktivity/nukleus-kafka.java/issues/5/events","html_url":"https://github.com/reaktivity/nukleus-kafka.java/issues/5","id":280320158,"number":5,"title":"Support filtered retrieval from a topic by message key","user":{"login":"jfallows","id":2099911,"avatar_url":"https://avatars0.githubusercontent.com/u/2099911?v=4","gravatar_id":"","url":"https://api.github.com/users/jfallows","html_url":"https://github.com/jfallows","followers_url":"https://api.github.com/users/jfallows/followers","following_url":"https://api.github.com/users/jfallows/following{/other_user}","gists_url":"https://api.github.com/users/jfallows/gists{/gist_id}","starred_url":"https://api.github.com/users/jfallows/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jfallows/subscriptions","organizations_url":"https://api.github.com/users/jfallows/orgs","repos_url":"https://api.github.com/users/jfallows/repos","events_url":"https://api.github.com/users/jfallows/events{/privacy}","received_events_url":"https://api.github.com/users/jfallows/received_events","type":"User","site_admin":false},"labels":[{"id":711833455,"url":"https://api.github.com/repos/reaktivity/nukleus-kafka.java/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2017-12-07T23:47:01Z","updated_at":"2017-12-09T01:11:02Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"Allows for more flexible mappings of logical message streams to physical Kafka topics, rather than forcing a one-to-one mapping.\r\n\r\n```\r\nstruct KafkaBeginEx\r\n{\r\n    string16 topicName;\r\n    varint64[] fetchOffsets;\r\n    int32 fetchKeySize = -1;\r\n    octets[fetchKeySize] fetchKey;\r\n    int32 fetchKeyHash = -1;\r\n}\r\n```\r\n\r\nIf `fetchKey` is specified then it is used to filter results from `topicName` by matching message key.\r\n\r\nIf `fetchKeyHash` is specified, then `FETCH` messages from `partitionId = fetchKeyHash % partitionCount`, otherwise compute `partitionId` from `fetchKey` using default hashing algorithm.\r\n\r\nSee Kafka client [`DefaultPartitioner.partition(...)`](https://apache.googlesource.com/kafka/+/trunk/clients/src/main/java/org/apache/kafka/clients/producer/internals/DefaultPartitioner.java#67).\r\n\r\nNote: it is an error to specify `fetchKeyHash` without `fetchKey`, and it would also be better if all possible hash values were available, including `-1`."},"comment":{"url":"https://api.github.com/repos/reaktivity/nukleus-kafka.java/issues/comments/350411395","html_url":"https://github.com/reaktivity/nukleus-kafka.java/issues/5#issuecomment-350411395","issue_url":"https://api.github.com/repos/reaktivity/nukleus-kafka.java/issues/5","id":350411395,"user":{"login":"jfallows","id":2099911,"avatar_url":"https://avatars0.githubusercontent.com/u/2099911?v=4","gravatar_id":"","url":"https://api.github.com/users/jfallows","html_url":"https://github.com/jfallows","followers_url":"https://api.github.com/users/jfallows/followers","following_url":"https://api.github.com/users/jfallows/following{/other_user}","gists_url":"https://api.github.com/users/jfallows/gists{/gist_id}","starred_url":"https://api.github.com/users/jfallows/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jfallows/subscriptions","organizations_url":"https://api.github.com/users/jfallows/orgs","repos_url":"https://api.github.com/users/jfallows/repos","events_url":"https://api.github.com/users/jfallows/events{/privacy}","received_events_url":"https://api.github.com/users/jfallows/received_events","type":"User","site_admin":false},"created_at":"2017-12-09T01:11:02Z","updated_at":"2017-12-09T01:11:02Z","author_association":"CONTRIBUTOR","body":"Right, though probably using some new concept of `null` `DATA` frame, as opposed to empty `DATA` frame, which conveys transmission of an empty message that we don't want to imply here."}}
{"actor":{"display_login":"jfallows"}}