One important aspect of the design of an integrated system such as Business Central, that is often overlooked until it rears its ugly head after the system goes into production, is the issue of locking. Locking occurs when one process has control of a data element, record, or group of records (in other words, part or all of a table) for the purpose of updating the data within the range of the locked data and, at the same time, another process requests the use of some portion of that data but finds it to be locked by the first process.
If a deadlock occurs, there is a serious design flaw wherein each process has data locked that the other process needs, and neither process can proceed. One of our responsibilities as developers or implementers is to minimize locking problems and eliminate any deadlocks.
Locking interference between processes in an asynchronous processing environment is inevitable. There will always be points in the system where one process instance locks out another...