My current research interests:
Applications of CRDTs in distributed systems, specifically partitioned and replicated computation in large-scale systems.
Efficient distributed computation in mobile and desktop applications supporting offline operation that preserve the correctness properties of applications.
Instruction of distributed systems topics.
Filibuster is the prototype implementation of Service-level Fault Injection Testing, a technique for identifying resilience issues in microservice applications.
Partisan is a high-performance alternative distributed runtime for Erlang.
Lasp is a new programming model designed to simplify large scale, fault-tolerant, distributed programming. Lasp is being developed as part of the SyncFree European research project. It leverages ideas from distributed dataflow extended with convergent replicated data types, or CRDTs. This supports computations where not all participants are online together at a given moment. The initial design supports synchronization-free programming by combining CRDTs together with primitives for composing them inspired by functional programming. This lets us write long-lived fault-tolerant distributed applications, including ones with nonmonotonic behavior, in a functional paradigm. The initial prototype is implemented as an Erlang library built on top of the Riak Core distributed systems infrastructure.
Large-scale online services including social networks and multiplayer games handle huge quantities of frequently changing shared data. Maintaining its consistency is relatively simple in a centralised cloud, but no longer possible due to increased scalability requirements. Instead, data must replicated across several distributed data centres, requiring new principled approaches to consistency that will be explored by the SyncFree project.