An alternative might be some form of transaction memory.
When a tiddler is served over a network it has last-modified time (this is the time when the server
last stored a modification)
If a user edits a tiddler and sends it back it should include this time.
Call this Told.
When the server receives an updated tiddler it checks to see if Told
is identical to the current last modified time of the tiddler if so the update
succeeds.
If the two are not identical the update fails - and the user is told that
their new tiddler value is not an update to the latest value of the tiddler.
They should then get the latest version and resolve any conflicts.
This works pretty well if we make a couple of assumptions
1) people do not edit the same tiddlers at the same time
2) edits are relatively quick
This way nothing gets locked and there are no checkins/outs.
Actually, each tiddler could be (internally) a write-append-only log of diffs
this way no data gets lost and we can back up to any old value.
Cheers
/Joe