At CampJS this week there were a lot of talks about frontend web components, mostly focused on views. It struck me, as a mostly backend engineer that we could do with some better abstractions around client side/server side data sync to go with the new view model systems out there. Here's a few thoughts I had over the weekend..
A client side, in memory data store:
- Which is atomic (transactional?)
- With data that is strongly typed (validated)
- That syncs to a server (which is authoritative)
- That syncs uncommitted content to local storage transparently
- That is resilient to connectivity trouble
- That is bounded by the developer