The Why and How of celluloid-io-pg-listener
LISTEN for Postgresql NOTIFY messages;
Asynchronously process payloads
celluloid-io-pg-listener
(on github)
Why?
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.
How?
The data stores are both PostgreSQL databases living in different namespaces
(i.e. 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 JSON
.
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.
I want to know more!
comments powered by Disqus