|
|
|
|
|
by thruflo22
1889 days ago
|
|
Supabase’s realtime library consumes the logical WAL and provides a Phoenix channel + JavaScript API to subscribe to matching events from it:
https://github.com/supabase/realtime Under the hood, the core implementation was copied (with credit / attribution) from:
https://github.com/cainophile/cainophile I happened to do a similar thing but I adapted cainophile into an Elixir “OffBroadway” producer:
https://github.com/integratedb/integrate/blob/main/lib/integ... These approaches rely on acking the WAL to confirm data has been processed. It’s simpler than running Debezium / Kafka for “zookept” CDC. However, they are “at least once” at best and it’s easy to shoot yourself in the foot so think twice before relying on this kind of thing for a real application. Materialize is nice — TAIL is a lovely abstraction and their data ingest uses Debezium under the hood. That said, I believe their Postgres binlog source is still alpha / under active community dev. |
|
Looks like you're doing something similar. I'd love to see this extracted out into a library by the supabase team.