profile
viewpoint
Matt Howlett mhowlett www.matthowlett.com Austin, TX https://www.matthowlett.com kafka clients at @confluentinc

edenhill/librdkafka 5561

The Apache Kafka C/C++ library

confluentinc/confluent-kafka-dotnet 2092

Confluent's Apache Kafka .NET client

confluentinc/avro 12

Mirror of Apache Avro

mhowlett/confluent-kafka-dotnet 7

.NET/C# Kafka Client

mhowlett/datavstime 5

datavstime time-series visualization software

mhowlett/garch11 2

Some R code for generating GARCH11 random walks

mhowlett/AspNet.Identity.Providers 1

Storage providers for ASP.NET 5 Identity membership system

mhowlett/datavstime-examples 1

datavstime proxy HTTP API example implementations.

mhowlett/dockgit 1

A docker image that makes it easy set up a personal git server.

mhowlett/aspnet-base 0

docker environment for running aspnet coreclr kestrel webapps.

pull request commentconfluentinc/confluent-kafka-dotnet

Enhance HTTP Authentication Support

thanks for the change, lgtm after comments addressed.

henrydaly

comment created time in 11 days

Pull request review commentconfluentinc/confluent-kafka-dotnet

Enhance HTTP Authentication Support

 public CachedSchemaRegistryClient(IEnumerable<KeyValuePair<string, string>> conf             {                 throw new ArgumentException($"Invalid value '{basicAuthSource}' specified for property '{SchemaRegistryConfig.PropertyNames.SchemaRegistryBasicAuthCredentialsSource}'");             }+            if (username != null && password != null && authenticator == null)

you should do more checking - throw an argument exception on all invalid input cases.

henrydaly

comment created time in 11 days

PullRequestReviewEvent

Pull request review commentconfluentinc/confluent-kafka-dotnet

Enhance HTTP Authentication Support

+// Copyright 2016-2018 Confluent Inc.+//+// Licensed under the Apache License, Version 2.0 (the "License");+// you may not use this file except in compliance with the License.+// You may obtain a copy of the License at+//+// http://www.apache.org/licenses/LICENSE-2.0+//+// Unless required by applicable law or agreed to in writing, software+// distributed under the License is distributed on an "AS IS" BASIS,+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.+// See the License for the specific language governing permissions and+// limitations under the License.+//+// Refer to LICENSE for more information.++using System;+using System.Net.Http.Headers;+using System.Text;++namespace Confluent.SchemaRegistry+{+    /// <summary>+    ///     A HTTP authenticator implementing the 'Basic' scheme.+    ///+    ///     See: https://datatracker.ietf.org/doc/html/rfc7617+    /// </summary>+    public class BasicHttpAuthenticator : IHttpAuthenticator

BasicaAuthenticaitonHeaderValueProvider i think. I know it's a mouth full, but it's going to be little used and i think more descriptive wins.

henrydaly

comment created time in 11 days

PullRequestReviewEvent

Pull request review commentconfluentinc/confluent-kafka-dotnet

Enhance HTTP Authentication Support

+// Copyright 2016-2018 Confluent Inc.+//+// Licensed under the Apache License, Version 2.0 (the "License");+// you may not use this file except in compliance with the License.+// You may obtain a copy of the License at+//+// http://www.apache.org/licenses/LICENSE-2.0+//+// Unless required by applicable law or agreed to in writing, software+// distributed under the License is distributed on an "AS IS" BASIS,+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.+// See the License for the specific language governing permissions and+// limitations under the License.+//+// Refer to LICENSE for more information.++using System.Net.Http.Headers;++namespace Confluent.SchemaRegistry+{+    /// <summary>+    ///     An interface defining Schema Registry HTTP client authentication schemes.+    /// </summary>+    public interface IHttpAuthenticator

I think a more specific name here is better IAuthenticationHeaderValueProvider. Also update the comment.

henrydaly

comment created time in 11 days

PullRequestReviewEvent

Pull request review commentconfluentinc/confluent-kafka-dotnet

Enhance HTTP Authentication Support

+// Copyright 2016-2018 Confluent Inc.+//+// Licensed under the Apache License, Version 2.0 (the "License");+// you may not use this file except in compliance with the License.+// You may obtain a copy of the License at+//+// http://www.apache.org/licenses/LICENSE-2.0+//+// Unless required by applicable law or agreed to in writing, software+// distributed under the License is distributed on an "AS IS" BASIS,+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.+// See the License for the specific language governing permissions and+// limitations under the License.+//+// Refer to LICENSE for more information.++using System.Net.Http.Headers;++namespace Confluent.SchemaRegistry+{+    /// <summary>+    ///     A HTTP authenticator implementing the 'Bearer' scheme+    ///+    ///     See: https://datatracker.ietf.org/doc/html/rfc6750+    /// </summary>+    public class BearerHttpAuthenticator : IHttpAuthenticator

i mean we don't want this file.

henrydaly

comment created time in 11 days

PullRequestReviewEvent

Pull request review commentconfluentinc/confluent-kafka-dotnet

Enhance HTTP Authentication Support

 private HttpRequestMessage CreateRequest(string endPoint, HttpMethod method, par                 content.Headers.ContentType.CharSet = string.Empty;                 request.Content = content;             }+            if (httpAuthenticator != null)

we always use { }'s

henrydaly

comment created time in 11 days

PullRequestReviewEvent

Pull request review commentconfluentinc/confluent-kafka-dotnet

Enhance HTTP Authentication Support

+// Copyright 2016-2018 Confluent Inc.+//+// Licensed under the Apache License, Version 2.0 (the "License");+// you may not use this file except in compliance with the License.+// You may obtain a copy of the License at+//+// http://www.apache.org/licenses/LICENSE-2.0+//+// Unless required by applicable law or agreed to in writing, software+// distributed under the License is distributed on an "AS IS" BASIS,+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.+// See the License for the specific language governing permissions and+// limitations under the License.+//+// Refer to LICENSE for more information.++using System.Net.Http.Headers;++namespace Confluent.SchemaRegistry+{+    /// <summary>+    ///     A HTTP authenticator implementing the 'Bearer' scheme+    ///+    ///     See: https://datatracker.ietf.org/doc/html/rfc6750+    /// </summary>+    public class BearerHttpAuthenticator : IHttpAuthenticator

we don't want to include this specific case because it relates to a setup that we don't document or talk about.

henrydaly

comment created time in 11 days

PullRequestReviewEvent

Pull request review commentconfluentinc/confluent-kafka-dotnet

Enhance HTTP Authentication Support

 public CachedSchemaRegistryClient(IEnumerable<KeyValuePair<string, string>> conf             {                 throw new ArgumentException($"Invalid value '{basicAuthSource}' specified for property '{SchemaRegistryConfig.PropertyNames.SchemaRegistryBasicAuthCredentialsSource}'");             }+            if (username != null && password != null && authenticator == null)

coding style is to always use { }'s

henrydaly

comment created time in 11 days

PullRequestReviewEvent

Pull request review commentconfluentinc/confluent-kafka-dotnet

Enhance HTTP Authentication Support

 private static SubjectNameStrategyDelegate GetValueSubjectNameStrategy(IEnumerab         /// <param name="config">         ///     Configuration properties.         /// </param>-        public CachedSchemaRegistryClient(IEnumerable<KeyValuePair<string, string>> config)+        /// <param name="authenticator">+        ///     The client authenticator+        ///+        ///     default: null+        /// </param>+        public CachedSchemaRegistryClient(IEnumerable<KeyValuePair<string, string>> config, IHttpAuthenticator authenticator = null)

this isn't backwards compatible without a recompile, so I think it would be better to get rid of the default value for authenticator and make a second constructor that only takes config which should call this constructor.

henrydaly

comment created time in 11 days

PullRequestReviewEvent
PullRequestReviewEvent

push eventconfluentinc/confluent-kafka-dotnet

Robin Moffatt

commit sha 889df5577e1443c845fea0374abec0cb33017cc3

Add links out to Confluent Developer resources (#1720)

view details

push time in 19 days

PullRequestReviewEvent

issue closedconfluentinc/confluent-kafka-dotnet

[Question] Any support for cooperative rebalancing protocol?

Our use case implements a large number of consumers running in K8s. We are seeing a lot of "rebalancing storms" and I believe cooperative rebalancing might help. Is there a way to achieve this, or perhaps a workaround?

Thanks in advance.

closed time in a month

alexcothron
PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent

release confluentinc/confluent-kafka-dotnet

v1.8.2

released time in a month

push eventconfluentinc/confluent-kafka-dotnet

Matt Howlett

commit sha df4fb025d3dfab26179d3e9d4aa6cf954f0acbc5

V182 (#1704) * v1.8.2rc5 * ConfigGen 1.8.2-RC5 * -> v1.8.2 * Whitespace to trigger rebuild * whitespace change to trigger rebuild * Added note about SslCaPem to changelog

view details

push time in a month

created tagconfluentinc/confluent-kafka-dotnet

tagv1.8.2

Confluent's Apache Kafka .NET client

created time in a month

push eventconfluentinc/confluent-kafka-dotnet

Matt Howlett

commit sha df4fb025d3dfab26179d3e9d4aa6cf954f0acbc5

V182 (#1704) * v1.8.2rc5 * ConfigGen 1.8.2-RC5 * -> v1.8.2 * Whitespace to trigger rebuild * whitespace change to trigger rebuild * Added note about SslCaPem to changelog

view details

push time in a month

more