neighbourhoodie

joined 2 years ago
[–] neighbourhoodie@toot.berlin 1 points 1 month ago

The various resolution methods work together. E.g., in a forced reload scenario, trying to save changes to a card that has meanwhile been deleted could make for a jarring experience, so our manual resolution UI would take care of this one.

[–] neighbourhoodie@toot.berlin 1 points 1 month ago (1 children)

@tyler great question! This tutorial is less “here’s what we’re building in three steps” and more “here are three ways to achieve a goal, let’s explore trade-offs of each.”

In the series, locking is the last thing we explore to prevent conflicts and ensure no one’s data is overwritten. Not all conflicts are equal. Locking solves for some cases automatic resolution can’t catch, but also introduces complexity and adds limitations to the offline capabilities of CouchDB.

 

✨The final part of one of our most-loved series just dropped ✨

Some of you have been following as we build a real-time multi-user Kanban board with @couchdb and @sveltejs.

We’ve already covered requirements + manual and automatic conflict resolution. Post 4/4 delves into UI locking and fun features like audit trails.

Check it out: https://neighbourhood.ie/blog/2025/01/15/resource-locking-with-couchdb-and-svelte

 

Coding @couchdb is one thing, but do you have a CouchDB mindset? 🧩

We’ve just added 2/4 parts of an in-depth tutorial to our blog: a real-time multi-user Kanban board with CouchDB and @sveltejs.

Spoiler: no server-side code to start. Relaxing, right?

Part 1 covers requirements, challenges and trade-offs. The main challenge? *Conflicts!*

Core principles to avoid them: Making data granular + updating as few docs as possible

Check it out: https://neighbourhood.ie/blog/2024/12/05/realtime-multiuser-kanban-board-with-couchdb

More on part 2 🧵