This Article 
 Bibliographic References 
 Add to: 
Convenience Over Correctness
July/August 2008 (vol. 12 no. 4)
pp. 89-92
Steve Vinoski, Verivue
For decades, the RPC abstraction has been known to be fraught with serious problems related to partial failure, latency, and concurrency. Still, many developers continue to use RPC—some are even developing and open-sourcing new RPC systems—all in the name of convenience. Given all the known problems that plague RPC, and given better alternatives such as REST, should today's distributed systems developers really be choosing convenience over correctness?

1. J.E. White, High-Level Framework for Network-Based Resource Sharing, RFC 707, Jan. 1976;
2. A.D. Birrell and B.J. Nelson, "Implementing Remote Procedure Calls," ACM Trans. Computer Systems, vol. 2, no. 1, 1984, pp. 39–59.
3. B. Liskov, "Distributed Programming with Argus," Comm. ACM, vol. 31, no. 3, 1988, pp. 300–312.
4. A. Black et al., "Distribution and Abstract Types in Emerald," IEEE Trans. Software Eng., vol. 13, no. 1, 1987, pp. 65–76.
5. J. Waldo et al., A Note on Distributed Computing, tech. report SMLI TR-94-29, Sun Microsystems Laboratories, 1994; .
6. S. Vinoski, "Serendipitous Reuse," IEEE Internet Computing, Jan./Feb. 2008, pp. 84–87.
7. S. Vinoski, "Demystifying RESTful Data Coupling," IEEE Internet Computing, Mar./Apr. 2008, pp. 87–90.

Index Terms:
toward integration, remote procedure call, RPC, distributed systems, programming languages, asynchronous messaging, programming models, partial failure, latency, concurrency, REST, Erlang
Steve Vinoski, "Convenience Over Correctness," IEEE Internet Computing, vol. 12, no. 4, pp. 89-92, July-Aug. 2008, doi:10.1109/MIC.2008.75
Usage of this product signifies your acceptance of the Terms of Use.