Is your feature request related to a problem? Please describe.
DNS load balancing was introduced in #1212, and it defaults to enabled for users of the C bridge.
These options should be exposed through the C bridge, so that users of the C bridge, such as .NET SDK users, can configure DNS load balancing.
Describe the solution you'd like
Expose a TemporalCoreClientDnsLoadBalancingOptionsStruct through the C bridge like this
typedef struct TemporalCoreClientDnsLoadBalancingOptions {
bool enabled;
uint64_t resolution_interval_millis;
} TemporalCoreClientDnsLoadBalancingOptions;
and then add it to ConnectionOptions
There is an enabled property to preserve backwards compatibilities to be able to represent the three possible states (if the struct is omitted, the load balancer options can use default values like they are currently). However, the enabled property could also be omitted (or it could be negated and called disabled), and it could be the responsibility of users of the C bridge to pass in the struct by default. I think that is reasonable and may even be preferable in terms in future maintenance cost.
Additional context
We would like the ability to turn off DNS load balancing via the .NET SDK.
We have an environment where the server is addressable via a hostname that has both an IPv4 and IPv6 address. We can no longer connect to this server on GitHub hosted runners with DNS load balancing enabled, because GitHub hosted runnersdon't support IPv6: actions/runner-images#668
We are currently doing some gross hacks to get around this, but we would prefer not to have to do that long term.
I opened a PR with the proposed changes here: #1251
I'm hoping we can come to an agreement as to what the shape of the options exposed through the C bridge looks like, and then update it
Is your feature request related to a problem? Please describe.
DNS load balancing was introduced in #1212, and it defaults to enabled for users of the C bridge.
These options should be exposed through the C bridge, so that users of the C bridge, such as .NET SDK users, can configure DNS load balancing.
Describe the solution you'd like
Expose a
TemporalCoreClientDnsLoadBalancingOptionsStructthrough the C bridge like thisand then add it to ConnectionOptions
There is an
enabledproperty to preserve backwards compatibilities to be able to represent the three possible states (if the struct is omitted, the load balancer options can use default values like they are currently). However, theenabledproperty could also be omitted (or it could be negated and calleddisabled), and it could be the responsibility of users of the C bridge to pass in the struct by default. I think that is reasonable and may even be preferable in terms in future maintenance cost.Additional context
We would like the ability to turn off DNS load balancing via the .NET SDK.
We have an environment where the server is addressable via a hostname that has both an IPv4 and IPv6 address. We can no longer connect to this server on GitHub hosted runners with DNS load balancing enabled, because GitHub hosted runnersdon't support IPv6: actions/runner-images#668
We are currently doing some gross hacks to get around this, but we would prefer not to have to do that long term.
I opened a PR with the proposed changes here: #1251
I'm hoping we can come to an agreement as to what the shape of the options exposed through the C bridge looks like, and then update it