{"action":"created","comment":{"url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/pulls/comments/236429432","pull_request_review_id":178503898,"id":236429432,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzNjQyOTQzMg==","diff_hunk":"@@ -1,4 +1,4 @@\n-// Copyright 2016-2017 Confluent Inc., 2015-2016 Andreas Heider","path":"src/Confluent.Kafka/ConsumeResult.cs","position":1,"original_position":1,"commit_id":"93fbe45a256c86b9772baefb4b10155baf2139b3","original_commit_id":"3e1d5bce24877f3a5c773b5278916037a909c51a","user":{"login":"mhowlett","id":19174,"node_id":"MDQ6VXNlcjE5MTc0","avatar_url":"https://avatars2.githubusercontent.com/u/19174?v=4","gravatar_id":"","url":"https://api.github.com/users/mhowlett","html_url":"https://github.com/mhowlett","followers_url":"https://api.github.com/users/mhowlett/followers","following_url":"https://api.github.com/users/mhowlett/following{/other_user}","gists_url":"https://api.github.com/users/mhowlett/gists{/gist_id}","starred_url":"https://api.github.com/users/mhowlett/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhowlett/subscriptions","organizations_url":"https://api.github.com/users/mhowlett/orgs","repos_url":"https://api.github.com/users/mhowlett/repos","events_url":"https://api.github.com/users/mhowlett/events{/privacy}","received_events_url":"https://api.github.com/users/mhowlett/received_events","type":"User","site_admin":false},"body":"related, what do you think about including/excluding `log_level`? it's currently out, and I prefer it that way since people assume it's important but it's not. feel free to convince me otherwise.","created_at":"2018-11-26T21:15:48Z","updated_at":"2018-11-26T21:15:48Z","html_url":"https://github.com/confluentinc/confluent-kafka-dotnet/pull/656#discussion_r236429432","pull_request_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/pulls/656","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/pulls/comments/236429432"},"html":{"href":"https://github.com/confluentinc/confluent-kafka-dotnet/pull/656#discussion_r236429432"},"pull_request":{"href":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/pulls/656"}},"in_reply_to_id":234971637},"pull_request":{"url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/pulls/656","id":225354845,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI1MzU0ODQ1","html_url":"https://github.com/confluentinc/confluent-kafka-dotnet/pull/656","diff_url":"https://github.com/confluentinc/confluent-kafka-dotnet/pull/656.diff","patch_url":"https://github.com/confluentinc/confluent-kafka-dotnet/pull/656.patch","issue_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/issues/656","number":656,"state":"open","locked":false,"title":"revamped serialization","user":{"login":"mhowlett","id":19174,"node_id":"MDQ6VXNlcjE5MTc0","avatar_url":"https://avatars2.githubusercontent.com/u/19174?v=4","gravatar_id":"","url":"https://api.github.com/users/mhowlett","html_url":"https://github.com/mhowlett","followers_url":"https://api.github.com/users/mhowlett/followers","following_url":"https://api.github.com/users/mhowlett/following{/other_user}","gists_url":"https://api.github.com/users/mhowlett/gists{/gist_id}","starred_url":"https://api.github.com/users/mhowlett/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhowlett/subscriptions","organizations_url":"https://api.github.com/users/mhowlett/orgs","repos_url":"https://api.github.com/users/mhowlett/repos","events_url":"https://api.github.com/users/mhowlett/events{/privacy}","received_events_url":"https://api.github.com/users/mhowlett/received_events","type":"User","site_admin":false},"body":"key points:\r\n\r\n- `Producer` and `Consumer` no longer have type parameters.\r\n- `ProduceAsync`, `BeginProduce`, and `Consume` have both typed and untyped variants.\r\n- Serdes were not separated from the `Producer`/`Consumer` entirely because:\r\n  - `Producer`: There is often a requirement that delivery reports contain the corresponding object that was produced. If the serialized message is provided to the producer, the original unserialized values are not available to include in the delivery report.\r\n  - `Consumer`: If the `Consume` method is deserializer aware, a copy to `byte[]` can be avoided. This results in a significant performance improvement.\r\n- Serializers and deserializers are registered with the `Producer` and `Consumer`. invocation is automatic, based on type. This results in a very terse, easy to use API.\r\n- The serde delegates that the `Producer` and `Consumer` work with are not sufficient to provide functionality required by avro serdes (they lack a topic parameter and can not be awaited). Avro serde functionality is a completely separate layer, implemented via inheritance.\r\n- The avro serdes now never block when awaited (it's async/await all the way down). Associated deadlock issues should be solved. This was not possible with any of the previous serialization implementations.\r\n- performance: to localhost: 460k 100 byte msgs/s using `BeginProduce`, and 380k 100 byte msgs/s using `Consume<Ignore,Ignore>`. This is on par with the previous implementation.","created_at":"2018-10-24T10:50:56Z","updated_at":"2018-11-26T21:15:48Z","closed_at":null,"merged_at":null,"merge_commit_sha":"5539b85d6a1eb80c3522723f763e8aa89a4668b2","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/pulls/656/commits","review_comments_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/pulls/656/comments","review_comment_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/pulls/comments{/number}","comments_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/issues/656/comments","statuses_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/statuses/93fbe45a256c86b9772baefb4b10155baf2139b3","head":{"label":"mhowlett:serdes","ref":"serdes","sha":"93fbe45a256c86b9772baefb4b10155baf2139b3","user":{"login":"mhowlett","id":19174,"node_id":"MDQ6VXNlcjE5MTc0","avatar_url":"https://avatars2.githubusercontent.com/u/19174?v=4","gravatar_id":"","url":"https://api.github.com/users/mhowlett","html_url":"https://github.com/mhowlett","followers_url":"https://api.github.com/users/mhowlett/followers","following_url":"https://api.github.com/users/mhowlett/following{/other_user}","gists_url":"https://api.github.com/users/mhowlett/gists{/gist_id}","starred_url":"https://api.github.com/users/mhowlett/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhowlett/subscriptions","organizations_url":"https://api.github.com/users/mhowlett/orgs","repos_url":"https://api.github.com/users/mhowlett/repos","events_url":"https://api.github.com/users/mhowlett/events{/privacy}","received_events_url":"https://api.github.com/users/mhowlett/received_events","type":"User","site_admin":false},"repo":{"id":80080758,"node_id":"MDEwOlJlcG9zaXRvcnk4MDA4MDc1OA==","name":"confluent-kafka-dotnet","full_name":"mhowlett/confluent-kafka-dotnet","private":false,"owner":{"login":"mhowlett","id":19174,"node_id":"MDQ6VXNlcjE5MTc0","avatar_url":"https://avatars2.githubusercontent.com/u/19174?v=4","gravatar_id":"","url":"https://api.github.com/users/mhowlett","html_url":"https://github.com/mhowlett","followers_url":"https://api.github.com/users/mhowlett/followers","following_url":"https://api.github.com/users/mhowlett/following{/other_user}","gists_url":"https://api.github.com/users/mhowlett/gists{/gist_id}","starred_url":"https://api.github.com/users/mhowlett/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhowlett/subscriptions","organizations_url":"https://api.github.com/users/mhowlett/orgs","repos_url":"https://api.github.com/users/mhowlett/repos","events_url":"https://api.github.com/users/mhowlett/events{/privacy}","received_events_url":"https://api.github.com/users/mhowlett/received_events","type":"User","site_admin":false},"html_url":"https://github.com/mhowlett/confluent-kafka-dotnet","description":".NET/C# Kafka Client","fork":true,"url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet","forks_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/forks","keys_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/teams","hooks_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/hooks","issue_events_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/issues/events{/number}","events_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/events","assignees_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/assignees{/user}","branches_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/branches{/branch}","tags_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/tags","blobs_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/git/refs{/sha}","trees_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/statuses/{sha}","languages_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/languages","stargazers_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/stargazers","contributors_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/contributors","subscribers_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/subscribers","subscription_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/subscription","commits_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/commits{/sha}","git_commits_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/git/commits{/sha}","comments_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/comments{/number}","issue_comment_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/issues/comments{/number}","contents_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/contents/{+path}","compare_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/merges","archive_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/downloads","issues_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/issues{/number}","pulls_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/pulls{/number}","milestones_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/milestones{/number}","notifications_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/labels{/name}","releases_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/releases{/id}","deployments_url":"https://api.github.com/repos/mhowlett/confluent-kafka-dotnet/deployments","created_at":"2017-01-26T02:53:34Z","updated_at":"2018-11-21T04:12:35Z","pushed_at":"2018-11-26T21:06:44Z","git_url":"git://github.com/mhowlett/confluent-kafka-dotnet.git","ssh_url":"git@github.com:mhowlett/confluent-kafka-dotnet.git","clone_url":"https://github.com/mhowlett/confluent-kafka-dotnet.git","svn_url":"https://github.com/mhowlett/confluent-kafka-dotnet","homepage":null,"size":2352,"stargazers_count":1,"watchers_count":1,"language":"C#","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":3,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":3,"watchers":1,"default_branch":"master"}},"base":{"label":"confluentinc:1.0.x","ref":"1.0.x","sha":"29a49f10081419f92a216ffd706f1fb6a9106712","user":{"login":"confluentinc","id":9439498,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk0Mzk0OTg=","avatar_url":"https://avatars0.githubusercontent.com/u/9439498?v=4","gravatar_id":"","url":"https://api.github.com/users/confluentinc","html_url":"https://github.com/confluentinc","followers_url":"https://api.github.com/users/confluentinc/followers","following_url":"https://api.github.com/users/confluentinc/following{/other_user}","gists_url":"https://api.github.com/users/confluentinc/gists{/gist_id}","starred_url":"https://api.github.com/users/confluentinc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/confluentinc/subscriptions","organizations_url":"https://api.github.com/users/confluentinc/orgs","repos_url":"https://api.github.com/users/confluentinc/repos","events_url":"https://api.github.com/users/confluentinc/events{/privacy}","received_events_url":"https://api.github.com/users/confluentinc/received_events","type":"Organization","site_admin":false},"repo":{"id":72554578,"node_id":"MDEwOlJlcG9zaXRvcnk3MjU1NDU3OA==","name":"confluent-kafka-dotnet","full_name":"confluentinc/confluent-kafka-dotnet","private":false,"owner":{"login":"confluentinc","id":9439498,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk0Mzk0OTg=","avatar_url":"https://avatars0.githubusercontent.com/u/9439498?v=4","gravatar_id":"","url":"https://api.github.com/users/confluentinc","html_url":"https://github.com/confluentinc","followers_url":"https://api.github.com/users/confluentinc/followers","following_url":"https://api.github.com/users/confluentinc/following{/other_user}","gists_url":"https://api.github.com/users/confluentinc/gists{/gist_id}","starred_url":"https://api.github.com/users/confluentinc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/confluentinc/subscriptions","organizations_url":"https://api.github.com/users/confluentinc/orgs","repos_url":"https://api.github.com/users/confluentinc/repos","events_url":"https://api.github.com/users/confluentinc/events{/privacy}","received_events_url":"https://api.github.com/users/confluentinc/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/confluentinc/confluent-kafka-dotnet","description":"Confluent's Apache Kafka .NET client","fork":false,"url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet","forks_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/forks","keys_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/keys{/key_id}","collaborators_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/teams","hooks_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/hooks","issue_events_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/issues/events{/number}","events_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/events","assignees_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/assignees{/user}","branches_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/branches{/branch}","tags_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/tags","blobs_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/git/refs{/sha}","trees_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/git/trees{/sha}","statuses_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/statuses/{sha}","languages_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/languages","stargazers_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/stargazers","contributors_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/contributors","subscribers_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/subscribers","subscription_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/subscription","commits_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/commits{/sha}","git_commits_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/git/commits{/sha}","comments_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/comments{/number}","issue_comment_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/issues/comments{/number}","contents_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/contents/{+path}","compare_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/compare/{base}...{head}","merges_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/merges","archive_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/downloads","issues_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/issues{/number}","pulls_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/pulls{/number}","milestones_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/milestones{/number}","notifications_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/labels{/name}","releases_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/releases{/id}","deployments_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/deployments","created_at":"2016-11-01T16:25:52Z","updated_at":"2018-11-23T02:52:24Z","pushed_at":"2018-11-26T21:06:46Z","git_url":"git://github.com/confluentinc/confluent-kafka-dotnet.git","ssh_url":"git@github.com:confluentinc/confluent-kafka-dotnet.git","clone_url":"https://github.com/confluentinc/confluent-kafka-dotnet.git","svn_url":"https://github.com/confluentinc/confluent-kafka-dotnet","homepage":"https://docs.confluent.io/current/clients/confluent-kafka-dotnet/api/Confluent.Kafka.html","size":1702,"stargazers_count":736,"watchers_count":736,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":237,"mirror_url":null,"archived":false,"open_issues_count":81,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":237,"open_issues":81,"watchers":736,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/pulls/656"},"html":{"href":"https://github.com/confluentinc/confluent-kafka-dotnet/pull/656"},"issue":{"href":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/issues/656"},"comments":{"href":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/issues/656/comments"},"review_comments":{"href":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/pulls/656/comments"},"review_comment":{"href":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/pulls/656/commits"},"statuses":{"href":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/statuses/93fbe45a256c86b9772baefb4b10155baf2139b3"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"mhowlett"}}