faucet_source_oracle_cdc/lib.rs
1#![cfg_attr(docsrs, feature(doc_cfg))]
2
3//! # faucet-source-oracle-cdc
4//!
5//! Oracle Database change data capture for the
6//! [`faucet-stream`](https://crates.io/crates/faucet-stream) ecosystem, built on
7//! LogMiner (`DBMS_LOGMNR`) over the online and archived redo logs.
8//!
9//! Each committed transaction is emitted as one page of change envelopes
10//! (`{op, schema, table, before, after, scn, commit_scn, xid, ts}`, compatible
11//! with the `cdc_unwrap` transform) bookmarked by SCN, so a resumed run
12//! continues with no gap and no duplicate. Transactions are buffered until
13//! their `COMMIT`; rolled-back work is never emitted. Missing redo fails the run
14//! naming the lost SCN range. `capture_resume_position` returns the current
15//! SCN for the snapshot → CDC handoff.
16//!
17//! **Runtime requirement:** Oracle Instant Client must be installed where
18//! ODPI-C can load it. The database needs minimal supplemental logging (and
19//! all-column logging for full update images).
20
21mod config;
22mod descriptor;
23mod lag;
24mod logs;
25mod miner;
26mod redo;
27mod sql;
28mod state;
29mod stream;
30
31pub use config::{OnUnsupported, OracleCdcSourceConfig, StartPosition};
32pub use descriptor::DESCRIPTOR;
33pub use faucet_common_oracle::{OracleConnectionConfig, OracleTls};
34pub use state::Position;
35pub use stream::OracleCdcSource;