¿Cómo sincronizo los datos con la base de datos remota en caso de aplicaciones sin conexión primero?

Estoy creando una aplicación "TODO" que utiliza Service Workers para almacenar en caché las respuestas de la solicitud y, en caso de que un usuario esté desconectado, los datos almacenados en caché se muestran al usuario.El servidor expone un punto final REST-ful que tiene puntos finales POST, PUT, DELETE y GET expuestos para los recursos.Teniendo en cuenta que cuando el usuario está fuera de línea y envía un elemento TODO, lo guardo en IndexedDB local, pero no puedo enviar esta solicitud POST para el servidor ya que no hay conexión de red. Lo mismo es cierto para las solicitudes PUT, DELETE donde un usuario actualiza o elimina un elemento TODO existente

Preguntas

¿Qué patrones se usan para sincronizar las solicitudes pendientes con el servidor REST-ful cuando la conexión vuelve a estar en línea?

Respuestas a la pregunta(2)

Su respuesta a la pregunta