temporalio / temporalio/temporal
Support listening on both IPv4 and IPv6 networks in dual stack environments
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 23.2k
- Forks
- 1.9k
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 228
Description
Is your feature request related to a problem? Please describe.
Migrating to ipv6 is hard but will (probably?) eventually happen. To make this transition easier for operators, it would be advantageous for operators to be able to use either/both ipv4 and ipv6 to connect to temporal server services at the same time.
Describe the solution you'd like
when starting temporal server services, by default, if an external ipv4 and ipv6 address are available, bind to both using the same port.
Alter services rpc config BindOnLocalHost to bind on both 127.0.0.1 and ::1 if both are available.
Add some method to services rpc config to allow specifying multiple IPs to bind to (could be one v4 and one v6, or just N addresses to support multihomed environments).
Describe alternatives you've considered
It may be possible to run multiple of the same service on a host with both IPv4 and IPv6, one bound to IPv4 and one bound to IPv6, though that would probably be more resource intensive than enabling one process listening on multiple addresses.
Additional context
N/A
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 the services RPC configuration and its BindOnLocalHost behavior. Determine how service listeners are created and how multiple bind addresses could be represented. Done means services can listen on both 127.0.0.1 and ::1 when available, while supporting explicitly configured multiple IP addresses.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- backend, networking
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100