diff --git a/app/src/syncbase/java/io/v/todos/persistence/syncbase/SyncbaseMain.java b/app/src/syncbase/java/io/v/todos/persistence/syncbase/SyncbaseMain.java
index c70c92c..a8fa248 100644
--- a/app/src/syncbase/java/io/v/todos/persistence/syncbase/SyncbaseMain.java
+++ b/app/src/syncbase/java/io/v/todos/persistence/syncbase/SyncbaseMain.java
@@ -46,8 +46,8 @@
     private static final String
             TAG = SyncbaseMain.class.getSimpleName();
 
-    private static final int DEFAULT_MAX_JOIN_ATTEMPTS = 15;
-    private static final long RETRY_DELAY = 2000;
+    private static final int DEFAULT_MAX_JOIN_ATTEMPTS = 30;
+    private static final long MIN_RETRY_DELAY = 1000;
 
     private final IdGenerator mIdGenerator = new IdGenerator(IdAlphabets.COLLECTION_ID, true);
     private final Map<String, MainListTracker> mTaskTrackers = new HashMap<>();
@@ -157,7 +157,7 @@
             return joinListSyncgroup(listId);
         }
         // Note: This can be easily converted to exponential backoff.
-        final long delay = RETRY_DELAY;
+        final long startTime = System.currentTimeMillis();
         return Futures.catchingAsync(
                 joinListSyncgroup(listId),
                 SyncgroupJoinFailedException.class,
@@ -165,6 +165,9 @@
                     public ListenableFuture<SyncgroupSpec> apply(@Nullable
                                                                  SyncgroupJoinFailedException
                                                                          input) {
+                        long failTime = System.currentTimeMillis();
+                        long delay = Math.max(0, MIN_RETRY_DELAY + startTime - failTime);
+
                         Log.d(TAG, "Join failed. Sleeping " + debugString + " with delay " + delay);
                         return sExecutor.schedule(new Callable<SyncgroupSpec>() {
 
diff --git a/app/src/syncbase/java/io/v/todos/persistence/syncbase/SyncbasePersistence.java b/app/src/syncbase/java/io/v/todos/persistence/syncbase/SyncbasePersistence.java
index 1777dc0..2b6110d 100644
--- a/app/src/syncbase/java/io/v/todos/persistence/syncbase/SyncbasePersistence.java
+++ b/app/src/syncbase/java/io/v/todos/persistence/syncbase/SyncbasePersistence.java
@@ -104,7 +104,7 @@
     protected static final long
             SHORT_TIMEOUT = 2500,
             MEMBER_TIMER_DELAY = 100,
-            MEMBER_TIMER_PERIOD = 5000;
+            MEMBER_TIMER_PERIOD = 1000;
     public static final String
             USER_COLLECTION_NAME = "userdata",
             MOUNTPOINT = "/ns.dev.v.io:8101/tmp/todos/users/",
