Making it appear to external systems that every message was processed and committed exactly once.
Exploring some of the key issues considered when choosing how to handle failure in a distributed stream processing framework. And introducing some concepts and resources that could help you when building resilient distributed systems of your own.
Some principles that could be useful when building your own performance-sensitive software systems.
Avoiding data races and staying safe out there.
Building data structures tailor-made for eventual consistency.
Exploring the theory underlying CRDTs (convergent replicated data types) and demystifying monotonic join semi-lattices in the process.
Using ScalaCheck to verify infinite algebraic structures.
Verifying implementations of finite groups in Scala.
Implementating algebraic structures in Scala.
Exploring some methods in computer science for characterizing the relation between abstract state machines and their implementations.