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.
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: https://www.youtube.com/watch?v=R2Aa4PivG0g
Maybe this goes in the direction of what you are thinking of as “a new way of programming”?
Brilliant video, seems their current status is they changed the syntax of Dedalus and the new language is called Bloom ( http://bloom-lang.net ), but seems not quite ready for prime time just yet. Definitely something I’ll be keeping an eye on though…