Earlier quoted context omitted.
It's using Postgres pg_notify to subscribe to tables and using a WebSocket server to distribute the changes. The table watcher is written in Haskell and based on the IHP haskell framework. Using Haskell makes it very easy and efficient to deal with lot's of active sessions in parallel. You can find the source code here https://github.com/digitallyinduced/ihp/blob/master/IHP/Data... if you're interested :)
That's a similar approach to supabase. Why reinvent the wheel? (I'm asking out of curiosity here). Why websockets? Do you allow bidirectional communication? If not, wouldn't it be better to use http push for easier scaling?
We've initially built the technology already for IHP DataSync (https://ihp.digitallyinduced.com/Guide/realtime-spas.html). So we used what we already had here :)
> Why websockets?
We also use the WebSockets to do write operations. This allows for lower latency than doing a HTTP call for any API call. Additionally we run all operations in parallel. With HTTP push we wouldn't be able to easily run all these operations in parallel.