Durable Objects without Transactional Storage API


I have some difficulties understanding the documentation of Durable Object well. In my use case, the main interest in the durable object is to block the concurrency. The speed benefit due to the in-memory caching certainly sounds interesting, but I want to first avoid that so that if the performance needs are attained i my use case I can avoid making the app more expensive. Therefore I was thinking about using an R2 binding instead of the transactional storage API. The durable object would make sure that the read-modify-write operations are safe. However, I am not sure I fully understand how to use state.blockConcurrencyWhile . What I was thinking was to use the R2 object path as name. But then how can I retrieve in the constructor? Of course the path I can also pass in the fetch handler, but from the documentation it seems that state.blockConcurrencyWhile is only for the constructor. So I am a bit lost here. I do know a couple of ways to solve the concurrency problem without Durable Objects, although if Durable Objects does what it says in the docs, then it would abstract away the process for me, and that would be way cleaner actually. Can anybody help?