Skip to content

Move "dial" functionality into a separate package/project #870

Description

@kurtisvg

Feature Description

This issue is open to gather feedback on the idea of splitting the "dial" functionality into a separate package/project.

Currently, this library has 3 distinct ways to interact:

  • Programmatically, as an interface for a Go app to dial connections
  • Programmatically, to start, customize, and mount a proxy server
  • As an executable, to start, customize, and mount a proxy server from the command line

The first option (dialing connections from an application) often has different ideal behavior compared to the second two, which has lead to some challenging behavior (such as when to log and when to return errors). It's also meant that changes to one interface means a major version bump for the others, even if the the other interfaces are left unchanged. Additionally, it's also meant that there are some dependencies pulled in for the proxy that are relevant to the dialer, and visa versa.

As such, we think it would be a good idea to split the dial functionality into its own project. This is obviously a breaking change, and will lead to a major version bump in the proxy.

We've been prototyping this idea for a while, and would love some feedback on this idea: https://github.com/kurtisvg/cloud-sql-go-connector

Activity

  1. added
    type: feature request‘Nice-to-have’ improvement, new feature or different behavior or design.
    on Aug 5, 2021
  2. assigned and unassigned on Aug 5, 2021
  3. enocom commented on Aug 5, 2021

    @enocom
    Member

    As a side note, the new dialer supports tracing and will have support for metrics soon, satisfying #169. See GoogleCloudPlatform/cloud-sql-go-connector#32 for details.

  4. kurtisvg commented on Feb 11, 2022

    @kurtisvg
    ContributorAuthor

    The "dial" functionality is now here, and is consider in "Public Preview": https://github.com/GoogleCloudPlatform/cloud-sql-go-connector

  5. enocom commented on Jul 12, 2022

    @enocom
    Member

    Closing this as completed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

type: feature request‘Nice-to-have’ improvement, new feature or different behavior or design.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions