diff --git a/registry/servicediscovery/synthesizer/subscribed_urls_synthesizer_factory.go b/registry/servicediscovery/synthesizer/subscribed_urls_synthesizer_factory.go
index ba7887223c4553a368f2f698bbb861ba8e10fe26..c9b1449bef1a8fba0afb8cda163d740e34ac1157 100644
--- a/registry/servicediscovery/synthesizer/subscribed_urls_synthesizer_factory.go
+++ b/registry/servicediscovery/synthesizer/subscribed_urls_synthesizer_factory.go
@@ -17,16 +17,25 @@
 
 package synthesizer
 
+import (
+	"sync"
+)
+
 var (
-	synthesizers []SubscribedURLsSynthesizer
+	synthesizers     []SubscribedURLsSynthesizer
+	synthesizerMutex sync.RWMutex
 )
 
 // nolint
 func AddSynthesizer(synthesizer SubscribedURLsSynthesizer) {
+	synthesizerMutex.Lock()
+	defer synthesizerMutex.Unlock()
 	synthesizers = append(synthesizers, synthesizer)
 }
 
 // nolint
 func GetAllSynthesizer() []SubscribedURLsSynthesizer {
+	synthesizerMutex.RLock()
+	defer synthesizerMutex.RUnlock()
 	return synthesizers
 }