In today’s distributed enterprise systems it is not uncommon to see several actors interacting with the same resource at the same time. In order to prevent them from interfering with each other and to ensure data consistency, we often reach for the optimistic locking mechanism that is usually provided by Java Persistence API. But how does concurrency control impact our API? In this presentation, that will be a live coding session, we will model and implement REST API fully supporting optimistic locking mechanism according to art. You will see what request and response headers should we use, and what response code should we return in which situation. We will also see how Spring Framework supports such implementation, and what do we need to take care of on our own.