temporalio / temporalio/temporal
MySQL persistence: support multi-host connectAddr and/or SRV-based endpoint discovery (no LB/VIP environments)
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 23.2k
- Forks
- 1.9k
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 228
Description
Description
We are running Temporal server with MySQL persistence in Kubernetes/OpenShift and are migrating from Helm chart 0.73.1 (server 1.29.1) to chart 1.x.
For MySQL HA, we have a 3-node setup but no single LB/VIP endpoint available.
Today, connectAddr appears to be treated as a single effective endpoint at runtime (no native comma-separated host list behavior, no SRV-based discovery/failover support).
As confirmed in forum discussion, comma-separated connectAddr is currently not supported by Temporal server for MySQL.
Problem / Use case
In environments without LB/VIP, we need Temporal server persistence to survive primary/node changes without manual reconfiguration/redeploy.
Requested capability
Support one or both of:
Comma-separated MySQL hosts in connectAddr (client-side failover/discovery behavior), and/or
SRV-backed DNS names for MySQL endpoint discovery/failover.
Expected behavior
Temporal server can connect and recover across MySQL node failover using configured host list and/or SRV.
Reconnect logic should not require changing Helm values during failover events.
Behavior and limits documented clearly for MySQL persistence.
Current behavior
Effective MySQL target is a single address at runtime.
Comma-separated host input does not work for MySQL persistence.
SRV-based failover/discovery is not supported.
Environment
Temporal server: 1.29.1 (evaluating upgrade to 1.x)
Helm chart: 0.73.1 (migrating to 1.x)
Persistence: MySQL
Platform: Kubernetes/OpenShift
Constraint: no external/internal LB/VIP for DB endpoint
Additional context
Forum response indicated this should be tracked as a Temporal server issue; chart side is expected to handle it once server support exists.
https://community.temporal.io/t/temporal-s-helm-charts-reaches-milestone-1-0-0-release/19503
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing how Temporal server handles MySQL persistence connectAddr and review the existing persistence configuration and connection behavior. Compare comma-separated host support with SRV-based discovery, then define the supported failover behavior, limits, tests, and documentation needed for a complete implementation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, mysql
- Domain
- databases, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100