PoC of doing Outbox Pattern with CDC and .NET
Uses Postgres logical replication with Npgsql integration.
Main logic is placed in EventsSubscription. Check LogicalReplicationTest for sample usage.
- Start Postgres with WAL enabled from Docker image.
docker-compose up
- Run tests
dotnet test
- Devrim Gündüz -WAL: Everything you want to know
- Thiago - How to use Change Data Capture (CDC) with Postgres
- Ramesh naik E - Change Data Capture(CDC) in PostgreSQL
- Wal2Json - JSON output plugin for changeset extraction
- AWS Database Blog - Stream changes from Amazon RDS for PostgreSQL using Amazon Kinesis Data Streams and AWS Lambda
- PGDeltaStream - Streaming Postgres logical replication changes atleast-once over websockets
- Hrvoje Milković - Replicate PostreSQL data to Elasticsearch via Logical replication slots
- Azure Database for PostgreSQL—Logical decoding and wal2json for change data capture
- Npgsql - Logical Replication
- Postgresql To Kinesis For Java - Disney Streaming
- Postgres Documentation - Write Ahead Log
- Hevo - Working With Postgres WAL Made Easy
- The Internals of PostgreSQL - Write Ahead Logging — WAL
- EDB - PostgreSQL Write-Ahead Logging (WAL) Trade-offs: Bounded vs. Archived vs. Replication Slots
- 2nd Quadrant - Basics of Tuning Checkpoints
- Depesz - Picking task from queue – revisit
- Alvaro Herrera - Waiting for 9.5 – Implement SKIP LOCKED for row-level locks
- Chris Hanks - Turning PostgreSQL into a queue serving 10,000 jobs per second
- Vlad Mihalcea - How do PostgreSQL advisory locks work
- Marco Slot - When Postgres blocks: 7 tips for dealing with locks
- Marco Slot - PostgreSQL rocks, except when it blocks: Understanding locks
- Nickolay Ihalainen - PostgreSQL locking, Part 1: Row Locks
- Nickolay Ihalainen - PostgreSQL locking, part 2: heavyweight locks
- Nickolay Ihalainen - PostgreSQL locking, part 3: lightweight locks