#software #engineering #architecture #pattern


Local-first software is a paradigm that keeps user's data locally first, and then synchronizes it to a remote store. The concept is pushed forward by Kleppman et.al.[1], the goal being to enable "7 ideals", of which ownership and privacy, longevity, independence from the network.

This is achieved by storing data locally and then replicating across, using potentially existing synchronization technology already owned by the customer such as dropbox or git.

There are challenges, mostly managing conflicts and merges for collaborative software, and event driven architectures, with the help of CRDTs or other conflict resolution strategies can definitely make the strategy viable.

Coincidentally, there are challenges when it comes to licensing for software that is remote-first[2], since these are hiding data from their customers.