diff --git a/go/src/v.io/x/sensorlog/internal/client/device.go b/go/src/v.io/x/sensorlog/internal/client/device.go
index d67333c..65215e2 100644
--- a/go/src/v.io/x/sensorlog/internal/client/device.go
+++ b/go/src/v.io/x/sensorlog/internal/client/device.go
@@ -35,7 +35,7 @@
 		Desc:        desc,
 		SgPublishSb: sgPublishSb,
 	}
-	devSgName := config.SyncgroupName(sgPublishSb, devKey.Key())
+	devSgName := config.SyncgroupName(devKey.Key())
 	devRow := db.CollectionForId(sbmodel.CollectionId(devKey)).Row(devKey.Key())
 
 	if exists, err := devRow.Exists(ctx); err != nil {
@@ -47,7 +47,8 @@
 	// TODO(ivanpi): Lack of atomicity here can result in a duplicate join, not
 	// really relevant until syncgroup Leave is implemented.
 	sgMemberInfo := wire.SyncgroupMemberInfo{SyncPriority: config.SyncPriority}
-	if _, err := db.Syncgroup(devSgName).Join(ctx, sgMemberInfo); err != nil {
+	sgId := wire.Id{Name: devSgName, Blessing: "blessing"}
+	if _, err := db.Syncgroup(sgId).Join(ctx, sgPublishSb, "", sgMemberInfo); err != nil {
 		return nil, err
 	}
 
diff --git a/go/src/v.io/x/sensorlog/internal/config/defaults.go b/go/src/v.io/x/sensorlog/internal/config/defaults.go
index a1472ce..a5279b2 100644
--- a/go/src/v.io/x/sensorlog/internal/config/defaults.go
+++ b/go/src/v.io/x/sensorlog/internal/config/defaults.go
@@ -6,9 +6,8 @@
 package config
 
 import (
+	"fmt"
 	"time"
-
-	"v.io/v23/naming"
 )
 
 const (
@@ -30,6 +29,6 @@
 	MinSamplingInterval = 10 * time.Millisecond
 )
 
-func SyncgroupName(publishService, devId string) string {
-	return naming.Join(publishService, "%%sync", "sl", "dev", devId)
+func SyncgroupName(devId string) string {
+	return fmt.Sprintf("sldev%s", devId)
 }
diff --git a/go/src/v.io/x/sensorlog/internal/measure/syncgroup.go b/go/src/v.io/x/sensorlog/internal/measure/syncgroup.go
index 97eabb3..759e53f 100644
--- a/go/src/v.io/x/sensorlog/internal/measure/syncgroup.go
+++ b/go/src/v.io/x/sensorlog/internal/measure/syncgroup.go
@@ -32,13 +32,13 @@
 		return fmt.Errorf("invalid devId: %v", err)
 	}
 
-	sgName := config.SyncgroupName(sgPublishSb, devId)
+	sgId := wire.Id{Name: config.SyncgroupName(devId), Blessing: "blessing"}
 	// Check for syncgroup. If it already exists, we have nothing to do.
-	if sgs, err := db.GetSyncgroupNames(ctx); err != nil {
+	if sgs, err := db.ListSyncgroups(ctx); err != nil {
 		return err
 	} else {
 		for _, sg := range sgs {
-			if sg == sgName {
+			if sg == sgId {
 				return nil
 			}
 		}
@@ -89,5 +89,5 @@
 	}
 	sgMemberInfo := wire.SyncgroupMemberInfo{SyncPriority: config.SyncPriority}
 
-	return db.Syncgroup(sgName).Create(ctx, sgSpec, sgMemberInfo)
+	return db.Syncgroup(sgId).Create(ctx, sgSpec, sgMemberInfo)
 }
diff --git a/go/src/v.io/x/sensorlog/internal/measure/syncgroup_test.go b/go/src/v.io/x/sensorlog/internal/measure/syncgroup_test.go
index acc5f88..19b633c 100644
--- a/go/src/v.io/x/sensorlog/internal/measure/syncgroup_test.go
+++ b/go/src/v.io/x/sensorlog/internal/measure/syncgroup_test.go
@@ -8,6 +8,7 @@
 	"reflect"
 	"testing"
 
+	wire "v.io/v23/services/syncbase"
 	_ "v.io/x/ref/runtime/factories/roaming"
 	sbtu "v.io/x/ref/services/syncbase/testutil"
 	"v.io/x/sensorlog/internal/config"
@@ -35,10 +36,10 @@
 		t.Fatalf("InitSyncgroup failed: %v", err)
 	}
 
-	sgName := config.SyncgroupName(sbName, devId)
-	if sgs, err := db.GetSyncgroupNames(ctxMeasured); err != nil {
+	sgName := config.SyncgroupName(devId)
+	if sgs, err := db.ListSyncgroups(ctxMeasured); err != nil {
 		t.Fatalf("GetSyncgroupNames failed: %v", err)
-	} else if got, want := sgs, []string{sgName}; !reflect.DeepEqual(got, want) {
+	} else if got, want := sgs, []wire.Id{wire.Id{Name: sgName, Blessing: "blessing"}}; !reflect.DeepEqual(got, want) {
 		t.Errorf("GetSyncgroupNames got: %v, want: %v", got, want)
 	}
 
diff --git a/go/src/v.io/x/sensorlog/measured/measured.go b/go/src/v.io/x/sensorlog/measured/measured.go
index ecde218..b374ec5 100644
--- a/go/src/v.io/x/sensorlog/measured/measured.go
+++ b/go/src/v.io/x/sensorlog/measured/measured.go
@@ -30,7 +30,7 @@
 	flagDevId     = flag.String("devid", "", "DevId to be claimed by this measured. Must be specified.")
 	// Flags below are only applied the first time measured is run against a Syncbase service with the same devid.
 	flagAdmin     = flag.String("admin", "", "Blessing of admin user allowed to join the syncgroup. Must be specified.")
-	flagPublishSb = flag.String("publish-sb", "", "Syncbase service to publish the syncgroup at. Must be absolute. Must be specified. The syncgroup is published as '"+config.SyncgroupName("<publish-sb>", "<devid>")+"'.")
+	flagPublishSb = flag.String("publish-sb", "", "Syncbase service to publish the syncgroup at. Must be absolute. Must be specified. The syncgroup is published as '"+config.SyncgroupName("<devid>")+"' at <publish-sb>.")
 	flagPublishMt = flag.String("publish-mt", "", "Additional mount table to use for sync rendezvous in addition to namespace roots. Optional.")
 )
 
