LISTEN for Postgresql NOTIFY messages;
Asynchronously process payloads
celluloid-io-pg-listener (on github)
At Trumaker & Co we had a distributed data problem.
Two data stores that needed to be kept synchronized, in real time, with inserts and updates allowed on both sides.
There wasn’t a good solution available for that, so I did a lot of research and built
celluloid-io-pg-listener to solve the problem.
The data stores are both PostgreSQL databases living in different
schemas in PostgreSQL-speak). A recently improved feature of PostgreSQL is the built-in pub/sub type messaging channel. It can pass payloads, and as of version
9.4, has a built-in function (
json_build_object) to serialize data as
With some triggers and functions on both sides connected by the channel payloads would be sent with information about inserts and updates happening on the other side.