{"repo":"agoodway/walex","free":true,"listed":false,"github":"https://github.com/agoodway/walex","clone":"git clone https://github.com/agoodway/walex.git","description":"Postgres change events (CDC) in Elixir [WAL]","language":"Elixir","stars":368,"topics":["cdc","change-data-capture","elixir","postgres","postgresql","replication","debezium"],"license":"MIT","category":"databases-storage","readme_excerpt":"WalEx Simple and reliable Postgres Change Data Capture (CDC) in Elixir. WalEx allows you to listen to change events on your Postgres tables then perform callback-like actions with the data via the Event DSL. For example: - Stream database changes to an external service - Send a user a welcome email after they create a new account - Augment an existing Postgres-backed application with business logic - Send events to third party services (analytics, CRM, webhooks, etc)) - Update index / invalidate cache whenever a record is changed You can learn more about CDC and what you can do with it here: Why capture changes? Credit This library borrows liberally from realtime from Supabase, which in turn draws heavily on cainophile. Alternatives If you don't need to subscribe to WAL events directly in Elixir or are not an Elixir user, take a look at Sequin, which allows you to stream Postgres changes to a variety of destinations, including Kafka, S3, and more. Installation If available in Hex, the package can be installed by adding walex to your list of dependencies in mix.exs : PostgreSQL Configuration Logical Replication WalEx only supports PostgreSQL. To get started, you first need to configure PostgreSQL for logical replication: Docker Compose: Publication When you change the wal level variable, you'll need to restart your PostgreSQL server. Once you've restarted, go ahead and create a publication for the tables you want to receive changes for: All tables: Or just specific tables: Fil","default_branch":null,"files":null,"tree":[],"storefront":"/r/agoodway","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/agoodway/walex/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}