In part 1, the single-document case was easy. In part 2, two documents brought Write Skew, and we saw that even a native ACID transaction — snapshot isolation — lets it through.

So teams reach for the reflex fix: a distributed lock — Redis-based, often a Redlock-style implementation. Acquire a lock on a key, do your Read → Modify → Write, release. On paper, you've finally serialized the critical section — operationally, at least. In practice, you've stepped on three mines.

1. Network latency

Every guarded transaction now makes extra round-trips to Redis — before and after hitting your NoSQL store.

You've doubled your coordination surface and taken a hard dependency on a second system being up, reachable, and fast on the hot path of every write.