Abstract :
Internet-scale distributed applications are frequently built as loosely coupled compositions of services. We would like that despite loose coupling, each constituent service has a mutually consistent view of the state of the application not withstanding software, hardware and network related problems (e.g., clock skews, unpredictable transmission delays, message loss, node crashes etc.). Some observations on how messaging middleware should be structured to accomplish this are presented.