How *not* to build a URL Shortener
Concurrency in web applications is so easy to get wrong, and so hard to identify and debug when it comes to bite you. In this talk I'm going to present common concurrency issues with even the simplest application, and suggest ways to identify and prevent them!
In this talk I'll present common issues, and different approaches for dealing with concurrency:
- Why it is better to ask for forgiveness instead of permission when dealing with concurrency
- What is the TOCTOU (time-of-check-time-of-use) problem, how it can happen and how to address it
- How database locking can help with concurrency, and how to avoid it!
- How and when to rely on database features to maintain correctness