When architecting a client-server or n-tier application, you should decide on a particular locking technique and accordingly the transaction isolation level and concurrency control strategy for database transactions. This decision becomes critical as not making it in initial phase might introduce significant changes later on when the application is in the development phase. Also, not choosing the appropriate transaction isolation level and concurrency control might result in data inconsistency, poor performance in a multiuser scenario, and frequent deadlocks. So, the key to avoid these problems is to understand these features completely for the target platform and apply them according to the need of the application being developed.