Modules
Parser for PostgreSQL array literals
Cast from Postgres to Elixir types
Internal change records produced after a logical replication transaction
has been decoded and grouped by WalEx.Replication.Publisher.
A row deleted within a transaction; old_record contains the previous values when available.
A row inserted within a transaction.
Decoded transaction: an ordered list of row changes plus commit timestamp.
A TRUNCATE of one of the subscribed tables.
A row updated within a transaction; includes the previous values when REPLICA IDENTITY FULL is set.
Per-app configuration store backed by Agent.
Shared Registry used to look up per-app WalEx processes
(config agent, GenServers, supervisors) by {module, app_name}.
Binary decoder for the Postgres logical replication pgoutput plugin.
Decoded representations of each pgoutput replication message.
B — start of a transaction; carries the final LSN, commit timestamp, and xid.
C — end of a transaction; carries the commit LSN and timestamp.
D — a row delete; carries either the key or the full old tuple, depending on REPLICA IDENTITY.
I — a row insert; tuple_data holds the new values.
O — origin marker emitted when a transaction has a logical replication origin.
R — relation (table) metadata: identifier, schema, name, replica identity, columns.
Per-column metadata within a Relation message.
T — a TRUNCATE of one or more relations; options indicate CASCADE / RESTART IDENTITY.
Y — a type registration for a non-built-in OID.
Catch-all for replication messages WalEx does not yet decode; carries the raw binary.
U — a row update; carries new values and, if available, the key or old tuple.
User-facing change event struct.
Macros that build the process_all/process_insert/process_update/process_delete
callbacks invoked by WalEx.Events.EventModules for each subscribed table.
Attribution metadata attached to every WalEx.Event.
Process events
Process events (call modules containing process functions)
Supervises the per-app event GenServers (WalEx.Events and, when configured,
WalEx.Events.EventModules). The latter is only started when the app's
:modules config is non-empty.
Internal formatting helpers used when building WalEx.Event structs.
Maps a numeric PostgreSQL type ID to a descriptive string.
GenServer that accumulates decoded pgoutput messages into transactions and
hands the resulting WalEx.Changes.Transaction off to WalEx.Events.
Publisher state: open transaction plus accumulated relation and type tables.
SQL and replication command strings used by WalEx.Replication.Server to
verify publication state and start logical decoding over the pgoutput plugin.
This module is responsible for setting up the replication connection
Supervises the per-app replication pipeline (WalEx.Replication.Publisher
and WalEx.Replication.Server).
Filter transactions based on the relation and event type.
Parsed relation filter: schema, table, and an optional condition.
Mix Tasks
Drops the database
Shared helpers for the walex.setup and walex.drop Mix tasks.
Creates, migrates and seeds the database