Scalable approximations to causality and consistency of distributed objects