Features – No Race Conditions

No Race Conditions

Whenever there are asynchronous operations going on, the potential for a race condition exists. A race condition occurs when an action is dependent on an expected sequence of operations and that sequence does not happen in the expected order.

This is highly undesirable and constitutes a design flaw (a bug). It generally occurs when two or more execution entities require access to some shared resource or data. If the possibility exists that the execution entities can be preempted, there is no prior knowledge about which entity is accessing the resource at any given time. Hence, there is a race for gaining access to the resource.

The usual way to control the race condition typically involves acquiring exclusive access to the resource so that the integrity of the operation can be guaranteed. However, that requires additional code (perhaps even an additional, specialized class and services for the class) and more time, neither of which is all that desirable.

With Novos services, no race conditions are possible. Every service has inherent, built-in protection against race conditions. It means that every service produces results with 100% integrity.