The database is the protocol. Reflections on a 20 year tradition of re-inventing the wheel

Caleb James DeLisle

The database is the protocol.
Reflections on a 20 year tradition of re-inventing the wheel.
Caleb James DeLisle

From UseNet to ActivityPub, every protocol solves the same problems over again.

  • How do we discover nodes?
  • How do we deal with network partitions?
  • How do we define bad behavior and how do we prevent it?

The algorithms which solve these problems are present in almost every decentralized protocol. They are also famous for being very difficult to get right!
In this lecture I will to propose an alternative. Why can’t we let the database do the replication and stick to writing the rules? When a node is a finite state automaton, all we need is an SQL-like language to define the set of all legal state transitions.

Questions & Answers available!

Q&A Session ‚Äď The database is the protocol
⬡ Hooray, the live Questions & Answers are available here


Cool ideas!

A plug of something I am very interested in and think is related to what you were talking about: Dedalus which uses Datalog as a language to define behaviour of distributed systems. There’s a nice StrangeLoop talk on the topic:

Maybe this goes in the direction of what you are thinking of as ‚Äúa new way of programming‚ÄĚ?


FYI I see Datalog db‚Äôs popping up ‚Äėeverywhere‚Äô. I posted 3 candidates to delightful databases.


Brilliant video, seems their current status is they changed the syntax of Dedalus and the new language is called Bloom ( ), but seems not quite ready for prime time just yet. Definitely something I’ll be keeping an eye on though…

With a quick search I also found disorderly labs and programmable storage. Might be interesting?