Files
sendico/api/pkg/discovery/instanceid.go
2026-01-04 12:57:40 +01:00

28 lines
500 B
Go

package discovery
import (
"strings"
"sync"
"github.com/google/uuid"
)
var (
instanceID string
instanceOnce sync.Once
instanceIDGenerator = func() string {
return uuid.NewString()
}
)
// InstanceID returns a unique, process-stable identifier for the running service instance.
func InstanceID() string {
instanceOnce.Do(func() {
instanceID = strings.TrimSpace(instanceIDGenerator())
if instanceID == "" {
instanceID = uuid.NewString()
}
})
return instanceID
}