Communicating systems are everywhere
But as any other computer program they have bugs and occasionally fail
... bummer!
This thesis focuses on preventing two specific ways communicating systems might fail
Communication deadlocks
A
receive("B",x)
...
B
receive("A",x)
...
Communication deadlocks
A
...
B
receive("A",x)
...
out-of-memory errors
A
x = number_crunching()
send("B",x)
...
B
receive("A",x)
...
out-of-memory errors
A
x = 💥
send("B",x)
...
B
receive("A",x)
...
out-of-memory errors
A
B
receive("A",x)
...