Commit 194f366
Mohammed Ali
[adapters] Add Postgres CDC input connector with crash-safe replication
Add an integrated input connector that reads from Postgres via logical
replication using the supabase/etl library. The connector handles both
initial table snapshot and ongoing WAL streaming.
Key features:
- Snapshot + streaming via etl's Pipeline (table copy + CDC follow)
- Crash-safe replication slot advancement: the connector defers ETL's
async flush confirmation until Feldera completes the circuit step
that processed the data, ensuring the Postgres replication slot only
advances after data is durably processed
- Completion tracking via InputConsumer::completion_watcher() that
exposes Feldera's step completion notifications to input adapters
- RFC 3339 timestamp format and byte array encoding for correct
Datagen parser compatibility
Files added:
- crates/adapters/src/integrated/postgres/cdc_input.rs
Tests:
- 47 unit tests (cell_to_json, array_cell_to_json, row_to_json,
parse_pg_uri, FelderaDestination helpers)
- 3 integration tests (basic insert, all data types, update/delete)1 parent 3d7046f commit 194f366
File tree
14 files changed
+2841
-42
lines changed- crates
- adapterlib/src
- adapters
- src
- integrated
- postgres
- test
- transport/kafka/ft
- feldera-types/src
- transport
14 files changed
+2841
-42
lines changedSome generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
265 | 265 | | |
266 | 266 | | |
267 | 267 | | |
268 | | - | |
| 268 | + | |
269 | 269 | | |
270 | 270 | | |
271 | 271 | | |
| |||
283 | 283 | | |
284 | 284 | | |
285 | 285 | | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
286 | 289 | | |
287 | 290 | | |
288 | 291 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
| |||
765 | 766 | | |
766 | 767 | | |
767 | 768 | | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
768 | 782 | | |
769 | 783 | | |
770 | 784 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| 27 | + | |
27 | 28 | | |
28 | 29 | | |
29 | 30 | | |
| |||
52 | 53 | | |
53 | 54 | | |
54 | 55 | | |
| 56 | + | |
55 | 57 | | |
56 | 58 | | |
57 | 59 | | |
| |||
200 | 202 | | |
201 | 203 | | |
202 | 204 | | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
203 | 208 | | |
204 | 209 | | |
205 | 210 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7080 | 7080 | | |
7081 | 7081 | | |
7082 | 7082 | | |
| 7083 | + | |
| 7084 | + | |
| 7085 | + | |
| 7086 | + | |
7083 | 7087 | | |
7084 | 7088 | | |
7085 | 7089 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| 13 | + | |
| 14 | + | |
13 | 15 | | |
14 | 16 | | |
15 | 17 | | |
| |||
100 | 102 | | |
101 | 103 | | |
102 | 104 | | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
103 | 109 | | |
104 | 110 | | |
105 | 111 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
8 | 11 | | |
9 | 12 | | |
10 | 13 | | |
11 | 14 | | |
12 | 15 | | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
0 commit comments