Lessons learned from building a sync-engine and reactivity system with SQLite