The Cloud and eventual consistency
Deep within the Cloud is a complex series of systems. There are trade-offs necessary to make everything work on a global scale, as Amazon CTO Werner Vogels illustrates.
Amazon CTO Werner Vogels recently revisited a post titled 'Eventually Consistent' , about building consistency models for globally distributed systems and the trade-offs required to process trillions of transactions. It's a little heady, but definitely worth a read if you are trying to figure out how to architect applications for the Cloud or other large system architectures.
Whether or not inconsistencies are acceptable depends on the client application. In all cases the developer needs to be aware that consistency guarantees are provided by the storage systems and need to be taken into account when developing applications. There are a number of practical improvements to the eventual consistency model, such as session-level consistency and monotonic reads, which provide better tools for the developer. Many times the application is capable of handling the eventual consistency guarantees of the storage system without any problem. A specific popular case is a Web site in which we can have the notion of user-perceived consistency. In this scenario the inconsistency window needs to be smaller than the time expected for the customer to return for the next page load. This allows for updates to propagate through the system before the next read is expected.