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.
Read more details in:
- Push-based Outbox Pattern with Postgres Logical Replication.
- How to get all messages through Postgres logical replication.
- 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
- Postgres Documentation - Write Ahead Log
- The Internals of PostgreSQL - Write Ahead Logging — WAL
- Hevo - Working With Postgres WAL Made Easy
- Gunnar Morling - The Wonders of Postgres Logical Decoding Messages
- Gunnar Morling - Open-source Change Data Capture With Debezium - video
- Gunnar Morling - Open-source Change Data Capture With Debezium - slides
- Several9s - Using PostgreSQL Logical Replication to Maintain an Always Up-to-Date Read/Write TEST Server
- Matt Tanner - PostgreSQL CDC: A Comprehensive Guide
- Dmitry Narizhnykh - PostgreSQL Change Data Capture and Golang Sample Code
- Fujistsu - How PostgreSQL 15 improved communication in logical replication
- Kinsta - PostgreSQL Replication: A Comprehensive Guide
- Amit Kapila - Replication Improvements In PostgreSQL-14
- Postgresql Wiki - Logical Decoding Plugins
- Npgsql - Logical Replication
- Konstantin Evteev - Recovery use cases for Logical Replication in PostgreSQL 10
- EDB - PostgreSQL Write-Ahead Logging (WAL) Trade-offs: Bounded vs. Archived vs. Replication Slots
- Percona - The 1-2-3 for PostgreSQL Logical Replication Using an RDS Snapshot
- 2nd Quadrant - Basics of Tuning Checkpoints
- 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
- Amit Langote - Postgresql To Kinesis For Java - Disney Streaming
- Virender Singla - Postgres — Logical Replication and long running transactions
- Ordering with Advisory Locks
- 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