Application-level caching with transactional consistency
Reliable communication in the presence of failures