reifydb-cdc 0.4.13

Change Data Capture module for ReifyDB
Documentation
# Copyright (c) reifydb.com 2025
# This file is licensed under the Apache-2.0, see license.md file

# Test multiple changes in a single transaction
insert 1 a=1
insert 1 b=2
insert 1 c=3
commit
---
ok

# Check individual changes
cdc_get 1 1
---
Change { seq: 1, change: Insert { key: "a", post: "1" } }

cdc_get 1 2
---
Change { seq: 2, change: Insert { key: "b", post: "2" } }

cdc_get 1 3
---
Change { seq: 3, change: Insert { key: "c", post: "3" } }

# Check full transaction
cdc_get 1
---
Cdc { version: 1, ts: 1000, changes: [{ seq: 1, change: Insert { key: "a", post: "1" } }, { seq: 2, change: Insert { key: "b", post: "2" } }, { seq: 3, change: Insert { key: "c", post: "3" } }] }

# Test mixed operation types in single transaction
update 2 a=10
delete 2 b
insert 2 d=4
update 2 c=30
commit
---
ok

cdc_get 2 1
---
Change { seq: 1, change: Update { key: "a", pre: "1", post: "10" } }

cdc_get 2 2
---
Change { seq: 2, change: Delete { key: "b", pre: "2" } }

cdc_get 2 3
---
Change { seq: 3, change: Insert { key: "d", post: "4" } }

cdc_get 2 4
---
Change { seq: 4, change: Update { key: "c", pre: "3", post: "30" } }

# Check full transaction with mixed operations
cdc_get 2
---
Cdc { version: 2, ts: 1000, changes: [{ seq: 1, change: Update { key: "a", pre: "1", post: "10" } }, { seq: 2, change: Delete { key: "b", pre: "2" } }, { seq: 3, change: Insert { key: "d", post: "4" } }, { seq: 4, change: Update { key: "c", pre: "3", post: "30" } }] }

# Test large transaction with many changes
insert 3 e=5
insert 3 f=6
insert 3 g=7
insert 3 h=8
insert 3 i=9
commit
---
ok

# Verify sequence numbers
cdc_get 3 1
---
Change { seq: 1, change: Insert { key: "e", post: "5" } }

cdc_get 3 5
---
Change { seq: 5, change: Insert { key: "i", post: "9" } }