Monoids, and Sketches, and CRDTs, oh my!

Accepted Session
Short Form
Scheduled: Wednesday, June 22, 2016 from 11:00 – 11:45am in B304


A (hopefully) accessible introduction to some of the key mathematical concepts that make distributed and streaming computation possible.


Discussions of distributed systems can get pretty heavy on the jargon. HyperLogLog, CountMinSketch, PN-counters, ORSWOTs. What are these beasts and what was wrong with your basic lists, hash tables, and trees? I’ll explain why distributed computation and big data forces us to more advanced data structures; introducing key concepts and examples.

Monoids let you do portions of a computation on many machines and combine the pieces together. Sketches approximate more familiar data structures when your data sets get too big for exact answers. And CRDTs (conflict-free replicated data types) let multiple people modify data simultaneously without corruption.

This talk should be accessible to all math-curious people and only requires prior familiarity with common data structures like lists and hash maps.


math, distributedsystems

Speaking experience

I have spoken at OSCON, Open Source Bridge, Lambda Jam, CUFP, YAPC, several user groups, and given internal tech talks on a variety of topics such as "How to Serve a Billion Requests a Day with Perl", "Beautiful Concurrency with Erlang", “Enabling Microservice Architectures with Scala”, SBT, Continuous Deployment strategies, and more. Where available, slides and videos are linked from

This is a new talk.


Leave a private comment to organizers about this proposal