#160 service workers con cache por cada llamada y almacenar el estado de la app en la cache no valdría?
Depende de como se accedan a los datos, una bd entera puedes guardarla en un diccionario por "colección", royo document db, y otro diccionario dentro por id, si solo accedes por id, y sino un btree con tus indices y un bloom filter, aunque claro... no se si te compensa complicarte tanto. Es que si me dices una bd en JavaScript, el concepto es muy amplio.
El primer nivel si te diría diccionario casi seguro, pero no lo tengo claro, depende de los datos, el tamaño y como accedas a ellos sobre todo (tus queries).
El sync por debajo lo haría en un SW que te haga de capa entre la API y la app, de forma transparente para la app.