I’m a Ph.D. student interested in fault-tolerant distributed systems. I believe that, by finding the right abstractions, writing distributed systems can be made just as easy as single-threaded code. Several avenues I’m excited to explore are:
Automatic garbage collection of actors, so they do not need to be terminated manually.
Types and static analysis that alerts the programmer about unexpected race conditions.
Making interaction protocols easier to understand by replacing the event-driven control flow of message-passing with structured programming idioms like loops and exceptions.
One of my main projects is developing a low-overhead garbage collector for networked actor systems. This is still an active research problem because the only general-purpose algorithm known to be performant (implemented in the multicore Pony runtime) depends on causal message delivery, which may impose too high an overhead for networked systems written with Erlang or Akka Cluster.