Get the latest tech news
Solving Concurrency Bugs Using Schedules and Imagination
Race conditions are hard, debugging them without right approach is even harder.
Databases provide ACID properties, which are foundational in building web apps without worrying about all the hard parts. " Now all you need to do is sprinkle a small amount of pessimistic locking or some rearranging of code to avoid anomaly in lock-free manner. Only way to resolve this is by adding pessimistic locking at app layer using for update while reading list of current assignees.
Or read this on Hacker News