Nesta abordagem, o sistema assume que a maioria das operações não causará conflitos e não bloqueia explicitamente os recursos durante a execução. Em vez disso, o sistema verifica se houve conflitos após a conclusão da operação. Isso geralmente é feito usando algum tipo de marcação ou versão associada ao recurso. Antes de efetuar uma atualização, o sistema verifica se a versão do recurso ainda é a mesma que estava no início da operação. Se a versão não foi alterada, significa que não houve conflitos, e a operação pode ser confirmada. Caso contrário, a operação falha e deve ser tratada, geralmente por meio de uma nova tentativa ou notificação ao usuário. Essa abordagem é útil quando há uma baixa probabilidade de conflitos e quando as leituras são muito mais frequentes do que as escritas.