90
Forty Years of Pretending @reiddraper

Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Forty Years of Pretending

@reiddraper

Page 2: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

About me

Page 3: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Eng. @ Basho@reiddraper

Page 4: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Nobody ever got fired for making an RPC call

Page 5: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

RPC claims transparency between local and remote

procedure calls

Page 6: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

This abstraction fails

Page 7: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Even a simple web app is a distributed system

Page 8: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

A resurgence with Javascript

Page 9: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

RPC

Page 10: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

History

Page 11: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Pretending

Page 12: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Today

Page 13: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Tomorrow?

Page 14: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

RPC

Page 15: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Remote Procedure Call

Page 16: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

[…] RPC mechanism is one in which local procedures

and remote procedures are (effectively) indistinguishable to

the programmer. - Nelson

Page 17: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

[…] the calling environment is suspended, the parameters are passed across the network to the

environment where the procedure is to execute […], and the desired procedure is executed there. […] the

results are passed backed to the calling environment, where

execution resumes as if returning from a simple single-machine call

- Nelson

Page 18: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

A synchronous network call does not make RPC

Page 19: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

send(2) is not an RPC call

Page 20: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

transparency between local and remote procedure calls

Page 21: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Motivation for RPC

Page 22: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Distributed systems are hard

Page 23: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

The procedure call is familiar

Page 24: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Let's lift distributed programming to

the procedure call abstraction

Page 25: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Let's lift distributed programming to the method call

abstraction

Page 26: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Let's lift distributed programming to the function call

abstraction

Page 27: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

History

Page 28: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Telnet

Page 29: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

RFC 674 1974

Postel and White

Page 30: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Procedure Call Protocol

Page 31: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

RFC 707 1976 White

Page 32: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Remote Procedure Call

Page 33: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

The principal goal of all resource-sharing computer networks,

including the now international ARPA Network (the ARPANET), is to

usefully interconnect geographically distributed hardware, software,

and human resources

- White

Page 34: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

It forces upon the user all of the trappings of the

resource's own system.

- White

Page 35: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

It provides no basis for bootstrapping new composite resources from existing

ones.- White

Page 36: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

1970

20141974

1976

1981

1984

1991

1995

1998

2003

RFC 674

RFC 707

Xerox Remote Procedure Call

Implementing Remote Procedure Calls

CORBA v1

RFC 1831

XML-RPC

SOAP

Page 37: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

An alternative history

Page 38: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

The Actor Model 1973 Hewitt

Page 39: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

RFC 684 1975

Schantz

Page 40: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

[…] objection to the"PCP philosophy"

- Schantz

Page 41: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

RPC blurs the line between local (cheap)

and remote (expensive)

Page 42: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

RPC blurs the line between local (cheap)

and remote (expensive)

Page 43: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

[…] a model which relies on procedure calling for its basis does not take into account the special

nature of the network environment

- Schantz

Page 44: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

[…] and that such an environment can be more

suitably handled in a message passing model.

- Schantz

Page 45: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Goes on…

Page 46: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

A Critique of the Remote Procedure Call Paradigm

1988 Tanenbaum

van Renesse

Page 47: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Implementing Distributed Systems Using Linear Naming

1993 Bawden

Page 48: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

RFC 2616 (HTTP 1.1)

1999 Fielding et al.

Page 49: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

REST 2000

Fielding

Page 50: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Problems with RPC

Page 51: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Consistent code

Page 52: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow
Page 53: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

How do you atomically update the code?

Page 54: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Handling failure

Page 55: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

What if the remote node never responds?

Page 56: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Or the underlying TCP connection is closed?

Page 57: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Did it fail halfway through?

Page 58: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Did it fail right before it returned to us?

Page 59: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Why don't we have a stacktrace?

Page 60: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

What if our procedure made another RPC call?

Page 61: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Serializing values

Page 62: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

How do you serialize a file-

descriptor?

Page 63: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

How do you serialize a database

connection?

Page 64: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

The streaming problem

Page 65: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Can we start processing partial results?

Page 66: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

The continuation problem

Page 67: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

The procedure call only models A->B->A communication

Page 68: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

(8) Fallacies of Distributed Computing

Page 69: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Fallacies of Distributed Computing

Page 70: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

1. The network is reliable

Page 71: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

2. Latency is zero

Page 72: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

3. Bandwidth is infinite

Page 73: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

4. The network is secure

Page 74: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

5. Topology doesn't change

Page 75: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

6. There is one administrator

Page 76: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

7. Transport cost is zero

Page 77: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

8. The network is homogeneous

Page 78: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Today

Page 79: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Javascript and compile-to-Javascript

Page 80: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Code sharing!

Page 81: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Coupling

Page 82: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow
Page 83: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Even a simple web app is a distributed system

Page 84: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

meteor.js derby yesod-fay shoreleave hapstack dnode

now.js nodejs-light_rpc

Page 85: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Tomorrow

Page 86: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

The principal goal of all resource-sharing computer networks,

including the now international ARPA Network (the ARPANET), is to

usefully interconnect geographically distributed hardware, software,

and human resources

- White

Page 87: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Distributed systems are still hard

Page 88: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Implementing Distributed Systems Using Linear Naming

1993 Bawden

Page 89: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Bloom (UC Berkeley)

Page 90: Forty Years of Pretending - GOTO Conferencegotocon.com/dl/goto-chicago-2014/slides/ReidDraper... · meteor.js derby yesod-fay shoreleave hapstack dnode now.js nodejs-light_rpc . Tomorrow

Questions@reiddraper