Hm, I am a bit worried about using PostgreSQL with CRDT (Limitations section from the blog). I guess that PostgreSQL doesn't like frequently updates, because of MVCC. Maybe it is OK to use PG as a cold storage, if you have another application, which would work with hot data (like, when users change something), and eventually store it inside PG.
unless we can figure out how to overcome those limitations, you're right. Potentially some sort of throttling system for CRDT updates (offloaded to a background worker so that it's non-blocking?). If anyone else has ideas/approaches which could work in a PG-only context, we'd love to hear them
Maybe you can research a bit pluggable table storage interface in PostgreSQL. It is possible either to implement your storage, which works fine with CRDT, or try to find some storage implementation, which works fine with such usage pattern (like, https://wiki.postgresql.org/wiki/Zheap )