This paper introduces Gorums, a novel RPC framework for building fault tolerant distributed systems. Gorums offers a flexible and simple quorum call abstraction, used to communicate with a set of processes, and to collect and process their responses. Gorums provides separate abstractions for (a) selecting processes for a quorum call and (b) processing replies. These abstractions simplify the main control flow of protocol implementations, especially for quorum-based systems, where only a subset of the replies to a quorum call need to be processed. Combined, our abstractions provide sufficient flexibility to implement optimized communication patterns, load balancing strategies, and to maintain a dynamic global membership. We have used Gorums to implement a variety of quorum systems, including majority quorums, grid quorums, Byzantine quorums, and latency-efficient quorums. To show that Gorums can be used in practical systems, we also implemented EPaxos’ latency-efficient quorum system, and ran experiments using a key-value storage. Our results show that Gorums’ abstractions can provide additional performance benefits to EPaxos.