diff --git a/epicardium/ble/app/common/app_db.c b/epicardium/ble/app/common/app_db.c
index cf054afd206ebd22563dec986f99fdc7254ba359..550077784b4b120f430c8933c4a075660aba438e 100644
--- a/epicardium/ble/app/common/app_db.c
+++ b/epicardium/ble/app/common/app_db.c
@@ -95,12 +95,6 @@ static appDb_t appDb;
 /*! When all records are allocated use this index to determine which to overwrite */
 static appDbRec_t *pAppDbNewRec = appDb.rec;
 
-/* Timer to delay writing to persistent storage until a burst of store() calls has finished */
-static TimerHandle_t store_timer;
-static StaticTimer_t store_timer_buffer;
-static void store_callback();
-#define STORE_DELAY pdMS_TO_TICKS(5000)
-
 /*************************************************************************************************/
 /*!
  *  \brief  Initialize the device database.
@@ -117,32 +111,12 @@ void AppDbInit(void)
         memset(&appDb, 0, sizeof(appDb));
     }
     epic_file_close(fd);
-  }
-
-	store_timer = xTimerCreateStatic(
-                                     "appdb_store_timer",
-                                     STORE_DELAY,
-                                     pdFALSE,
-                                     NULL,
-                                     store_callback,
-                                     &store_timer_buffer
-                                     );
-}
-
-/* TODO this should actually put tasks into a queue. On the other end of the queue */
-/* a worker task can read tasks off the queue and execute them */
-static void store(void)
-{
-  LOG_INFO("appDb", "store() called, resetting timer");
-  if (xTimerReset(store_timer, 10) != pdPASS) {     /* (Re)start the timer */
-    /* Store timer could not be reset, write to persistent storage anyway */
-    store_callback();
   }
 }
 
-static void store_callback()
+static void AppDbStore(void)
 {
-  LOG_INFO("appDb", "STORE_DELAY passed, writing to persistent storage");
+  LOG_INFO("appDb", "writing to persistent storage");
 
   int fd = epic_file_open("pairings.bin", "w");
   if(fd >= 0) {
@@ -198,7 +172,6 @@ appDbHdl_t AppDbNewRecord(uint8_t addrType, uint8_t *pAddr)
   pRec->peerAddedToRl = FALSE;
   pRec->peerRpao = FALSE;
 
-  store();
   return (appDbHdl_t) pRec;
 }
 
@@ -263,7 +236,6 @@ appDbHdl_t AppDbGetNextRecord(appDbHdl_t hdl)
 void AppDbDeleteRecord(appDbHdl_t hdl)
 {
   ((appDbRec_t *) hdl)->inUse = FALSE;
-  store();
 }
 
 /*************************************************************************************************/
@@ -281,7 +253,7 @@ void AppDbValidateRecord(appDbHdl_t hdl, uint8_t keyMask)
 {
   ((appDbRec_t *) hdl)->valid = TRUE;
   ((appDbRec_t *) hdl)->keyValidMask = keyMask;
-  store();
+  AppDbStore();
 }
 
 /*************************************************************************************************/
@@ -371,7 +343,6 @@ void AppDbDeleteAllRecords(void)
   {
     pRec->inUse = FALSE;
   }
-  store();
 }
 
 /*************************************************************************************************/
@@ -518,7 +489,6 @@ void AppDbSetKey(appDbHdl_t hdl, dmSecKeyIndEvt_t *pKey)
     default:
       break;
   }
-  store();
 }
 
 /*************************************************************************************************/
@@ -551,7 +521,6 @@ void AppDbSetCccTblValue(appDbHdl_t hdl, uint16_t idx, uint16_t value)
   WSF_ASSERT(idx < APP_DB_NUM_CCCD);
 
   ((appDbRec_t *) hdl)->cccTbl[idx] = value;
-  store();
 }
 
 /*************************************************************************************************/
@@ -581,7 +550,6 @@ uint8_t AppDbGetDiscStatus(appDbHdl_t hdl)
 void AppDbSetDiscStatus(appDbHdl_t hdl, uint8_t status)
 {
   ((appDbRec_t *) hdl)->discStatus = status;
-  store();
 }
 
 /*************************************************************************************************/
@@ -611,7 +579,6 @@ uint16_t *AppDbGetHdlList(appDbHdl_t hdl)
 void AppDbSetHdlList(appDbHdl_t hdl, uint16_t *pHdlList)
 {
   memcpy(((appDbRec_t *) hdl)->hdlList, pHdlList, sizeof(((appDbRec_t *) hdl)->hdlList));
-  store();
 }
 
 /*************************************************************************************************/
@@ -654,7 +621,6 @@ void AppDbSetDevName(uint8_t len, char *pStr)
   len = (len <= sizeof(appDb.devName)) ? len : sizeof(appDb.devName);
 
   memcpy(appDb.devName, pStr, len);
-  store();
 }
 
 /*************************************************************************************************/
@@ -684,7 +650,6 @@ bool_t AppDbGetPeerAddrRes(appDbHdl_t hdl)
 void AppDbSetPeerAddrRes(appDbHdl_t hdl, uint8_t addrRes)
 {
   ((appDbRec_t *)hdl)->peerAddrRes = addrRes;
-  store();
 }
 
 /*************************************************************************************************/
@@ -715,7 +680,6 @@ void AppDbSetPeerSignCounter(appDbHdl_t hdl, uint32_t signCounter)
 {
   if(((appDbRec_t *)hdl)->peerSignCounter != signCounter) {
     ((appDbRec_t *)hdl)->peerSignCounter = signCounter;
-    store();
   }
 }
 
@@ -746,7 +710,6 @@ bool_t AppDbGetPeerAddedToRl(appDbHdl_t hdl)
 void AppDbSetPeerAddedToRl(appDbHdl_t hdl, bool_t peerAddedToRl)
 {
   ((appDbRec_t *)hdl)->peerAddedToRl = peerAddedToRl;
-  store();
 }
 
 /*************************************************************************************************/
@@ -776,6 +739,5 @@ bool_t AppDbGetPeerRpao(appDbHdl_t hdl)
 void AppDbSetPeerRpao(appDbHdl_t hdl, bool_t peerRpao)
 {
   ((appDbRec_t *)hdl)->peerRpao = peerRpao;
-  store();
 }
 /* clang-format on */