Commit e1231a8
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 a new InputConsumer::completion_watcher()
method that exposes Feldera's step completion notifications to input
adapters (backwards-compatible default returning None)
Files added:
- crates/adapters/src/integrated/postgres/cdc_input.rs
Files modified:
- crates/adapterlib/src/transport.rs (InputConsumer trait extension)
- crates/adapters/src/controller.rs (InputProbe implementation)
- crates/adapters/src/integrated.rs (connector registration)
- crates/adapters/src/integrated/postgres.rs (module declaration)
- crates/adapters/src/transport.rs (config variant)
- crates/adapters/Cargo.toml (etl dependencies)
- crates/feldera-types/src/config.rs (transport config)
- crates/feldera-types/src/transport/postgres.rs (CDC config struct)1 parent 6c71c44 commit e1231a8
File tree
11 files changed
+1496
-36
lines changed- crates
- adapterlib/src
- adapters
- src
- integrated
- postgres
- feldera-types/src
- transport
11 files changed
+1496
-36
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 | |
|---|---|---|---|
| |||
262 | 262 | | |
263 | 263 | | |
264 | 264 | | |
265 | | - | |
| 265 | + | |
266 | 266 | | |
267 | 267 | | |
268 | 268 | | |
| |||
280 | 280 | | |
281 | 281 | | |
282 | 282 | | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
283 | 286 | | |
284 | 287 | | |
285 | 288 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
| |||
763 | 764 | | |
764 | 765 | | |
765 | 766 | | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
766 | 783 | | |
767 | 784 | | |
768 | 785 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
| 55 | + | |
55 | 56 | | |
56 | 57 | | |
57 | 58 | | |
| |||
200 | 201 | | |
201 | 202 | | |
202 | 203 | | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
203 | 207 | | |
204 | 208 | | |
205 | 209 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6681 | 6681 | | |
6682 | 6682 | | |
6683 | 6683 | | |
| 6684 | + | |
| 6685 | + | |
| 6686 | + | |
| 6687 | + | |
6684 | 6688 | | |
6685 | 6689 | | |
6686 | 6690 | | |
| |||
| 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