Stronger Abstractions and Performance Guarantees for Building Strongly Consistent Distributed Services