State-based CRDTs: Maps

In this blog post, we'll cover the idea of CRDT maps, and how we could create them and utilize them in common scenarios. A prerequisite for this talk is some general knowledge of CRDTs, especially observed-remove sets, which were already…

Thread safety with affine thread pools

In the previous blog post I've written about building a thread-safe state access by using actor programming model (as opposed to common practices requiring synchronization barriers with locks) without compromising performance coming with running our programs on multi-CPU machines. As…

Build your own actors

What the actor model is all about? While actors are very broad term, in Software Engineering we comonly refer to them when speaking about languages (like Erlang or Pony) or frameworks (like Akka or Orleans). Here however we'll try to…

State-based CRDTs: Bounded Counter

Originally, I didn't want to make a separate blog post about design behind bounded counters, but since beside original paper and a very few implementation living in the wild, this CRDT is widely unknown, I've decided to give it a…

Optimizing state-based CRDTs (part 2)

In this blog post we'll continue exploring the ideas behind optimizing state-based CRDTs. This is a third post from the series. If you haven't read them before this article and don't feel familiar with CRDTs, I advise you to do…

Optimizing state-based CRDTs (part 1)

Other posts from this series: An introduction to state-based CRDTs Optimizing state-based CRDTs (part 1) Optimizing state-based CRDTs (part 2) State-based CRDTs: BoundedCounter State-based CRDTs: Map Last time we've talked about what are CRDTs and introduced the state-based variant of…