we've released a CRDT extension for Postgres (experimental and open source)
why? A CRDT is a special data type used for collaboration - think of a Google Doc. The changes are merged even as people are typing simultaneously
these CRDTs are then serialized on a server and then stored in a database.
with a Postgres extension, we give the database a more "native" experience - they can be merged on the database, indexed, and searched.
In the future you should be able to do something like this:
create table blog_posts (
id uuid primary key,
title text,
body crdt default '{}'
);
then you can post the changes to the database and it will merge automatically (rather than overwriting eachother's changes)
you can use websockets (like our Realtime server) for very rapid changes between users, batching the changes to your database