{"action":"created","issue":{"url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/issues/431","repository_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet","labels_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/issues/431/labels{/name}","comments_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/issues/431/comments","events_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/issues/431/events","html_url":"https://github.com/confluentinc/confluent-kafka-dotnet/pull/431","id":293352201,"number":431,"title":"msg hdrs + custom timestamps + doc reorg + IProducer/IConsumer + ...","user":{"login":"mhowlett","id":19174,"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},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":17,"created_at":"2018-01-31T23:39:11Z","updated_at":"2018-02-19T21:30:36Z","closed_at":null,"author_association":"COLLABORATOR","pull_request":{"url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/pulls/431","html_url":"https://github.com/confluentinc/confluent-kafka-dotnet/pull/431","diff_url":"https://github.com/confluentinc/confluent-kafka-dotnet/pull/431.diff","patch_url":"https://github.com/confluentinc/confluent-kafka-dotnet/pull/431.patch"},"body":"This PR introduces various related features:\r\n\r\n- message headers (produce and consume)\r\n- custom timestamps (produce)\r\n- Producer API refactor\r\n- IProducer / IConsumer interfaces\r\n- inline doc reorganization.\r\n- misc other things\r\n\r\nThis work is getting pretty complete, but it's not ready for final review. I won't have a chance to add to this over ~ the next week - opening now in case there is community feedback over that time."},"comment":{"url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/issues/comments/366807197","html_url":"https://github.com/confluentinc/confluent-kafka-dotnet/pull/431#issuecomment-366807197","issue_url":"https://api.github.com/repos/confluentinc/confluent-kafka-dotnet/issues/431","id":366807197,"user":{"login":"mhowlett","id":19174,"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},"created_at":"2018-02-19T21:30:36Z","updated_at":"2018-02-19T21:30:36Z","author_association":"COLLABORATOR","body":"The recommendation from Microsoft for dealing with unmanaged memory is definitely to implement the Basic Dispose Pattern (a standard pattern for implementing both finalizer and dispose), quoting: '...For example, the pattern should be implemented on types storing unmanaged memory buffers'\r\nhttps://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/dispose-pattern\r\n\r\nAlso, not disposing `IDisposable` objects will actually generate compiler warnings (i din't know 'cause I always dispose them :-) ): https://msdn.microsoft.com/en-us/library/ms182289.aspx\r\n\r\nThe above said, breaking the rules and providing just a finalizer and not implementing `IDisposable` may be the best option. But it's getting into unchartered waters, and I'm not sure."}}
{"actor":{"display_login":"mhowlett"}}