temporalio / features

Behavior and history compatibility testing for Temporal SDKs
13 stars 17 forks source link

Lazy connectivity for Temporal client and healthCheck #45

Open Spikhalskiy opened 2 years ago

Spikhalskiy commented 2 years ago

Users should be able to create a Temporal Client for a temporarily unavailable Temporal server.

SDKs should have the main client or one of the clients that:

  1. Don't have an eager healthCheck and getSystemInfo calls in the constructor.
  2. getSystemCapabilities call should be performed on the first client call in a lazy manner.
  3. healthCheck endpoint should be exposed on the Client that will allow users to perform a health check for the corresponded gRPC service. It will also allow to initialize a connection in an explicit eager manner and perform initialization activities (system capabilities negotiation right now).
  4. There may be a .connect() or .dial call that establishes the connection and fetches system capabilities and which will allow to provide the same functionality/guarantees as an eager client provides.
bergundy commented 2 years ago

@cretz did you expose healthcheck in Go?

cretz commented 2 years ago

@bergundy - Yes, in the linked Go PR from the description. Client.CheckHealth(). I need to open a Core issue to expose it so Python can use it. (EDIT: https://github.com/temporalio/sdk-core/issues/367)

bergundy commented 2 years ago

Thanks @cretz I checked Go off the list