In a distributed system ... there is no now
This paper is a discussion around the issues faced by distributed systems when dealing with time, ordering and failures. This is particularly relevant with the work I am doing at the moment designing a very large distributed system that will need to scale massively.
It is remarkably readable and illustrates key issues and limitations in the field. It has already got me researching other areas mentioned in the paper.