• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

vnvo / deltaforge / 23717982936
45%

Build:
DEFAULT BRANCH: main
Ran 29 Mar 2026 08:11PM UTC
Jobs 1
Files 114
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

29 Mar 2026 08:09PM UTC coverage: 43.33% (+1.7%) from 41.639%
23717982936

push

github

web-flow
Exactly-once delivery with per-sink independent checkpoints (#62)

* feat: exactly-once delivery with per-sink independent checkpoints

Kafka transactional producer (begin/commit per batch), NATS Nats-Msg-Id
server-side dedup, Redis idempotency_key for consumer-side dedup.

Per-sink checkpoints: each sink advances independently, source replays
from min(sink checkpoints). Legacy checkpoint fallback for seamless
migration. Source::compare_checkpoints trait method for correct ordering
(MySQL file+pos, Postgres LSN, Turso change_id).

Coordinator: policy gate before checkpoint commits, parallel per-sink
commits via join_all, SinkError::Fatal for producer fencing.

Benchmarks (tuned, single dev machine):
- MySQL:    151K events/s (at-least-once) / 134K (exactly-once) — 11% overhead
- Postgres:  57K events/s (at-least-once) /  53K (exactly-once) —  7% overhead
- Default max_bytes bumped 3MB → 16MB to prevent batch byte-capping

Chaos: exactly-once crash recovery scenario, configurable drain target/
writers/timeout/max_bytes, effective config dump before each run.

Infra: Docker Compose profiles (base/mysql-infra/pg-infra/kafka-infra),
Loki+Promtail log aggregation, Grafana dashboard with template variables
(instance/pipeline/source/sink/processor), per-sink checkpoint and
transaction commit/abort panels.

Docs: updated performance guide, Kafka/NATS/Redis sink references,
per-sink checkpoint architecture, delivery guarantee tiers.

* fix: flush partial batch when source goes idle at WAL/binlog tail

recv_many blocked indefinitely when no events were available, preventing
the select! loop's ticker branch from flushing the partial batch. Wrap
recv_many in tokio::time::timeout(tick_ms) so control returns to the
timer when the source goes idle.

Adds regression test: test_partial_batch_flushed_by_timer sends 3 events
to a coordinator with max_events=10000, keeps the channel open, and
asserts the timer flushes the partial batch within max_ms.

* fix: clippy lints... (continued)

322 of 711 new or added lines in 16 files covered. (45.29%)

7 existing lines in 5 files now uncovered.

9819 of 22661 relevant lines covered (43.33%)

164.0 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
2
12.5
12.5% crates/checkpoints/src/lib.rs
2
97.7
-2.3% crates/deltaforge-config/src/sinks_cfg.rs
2
0.0
0.0% crates/deltaforge-core/src/errors.rs
9
0.0
0.0% crates/chaos/src/main.rs
11
0.0
0.0% crates/chaos/src/ui.rs
13
12.11
0.34% crates/sinks/src/nats.rs
13
8.43
-0.19% crates/sinks/src/redis.rs
13
0.0
0.0% crates/sources/src/mysql/mod.rs
14
68.02
62.63% crates/runner/src/coordinator.rs
19
0.0
0.0% crates/sources/src/postgres/mod.rs
27
37.87
14.0% crates/runner/src/pipeline_manager.rs
30
0.0
0.0% crates/chaos/src/harness.rs
30
14.84
-0.95% crates/sinks/src/kafka.rs
93
0.0
crates/chaos/src/scenarios/exactly_once.rs
111
0.0
0.0% crates/chaos/src/scenarios/backlog_drain.rs

Uncovered Existing Lines

Lines Coverage ∆ File
1
0.0
0.0% crates/chaos/src/main.rs
1
0.0
0.0% crates/deltaforge-core/src/errors.rs
1
68.02
62.63% crates/runner/src/coordinator.rs
1
37.87
14.0% crates/runner/src/pipeline_manager.rs
3
0.0
0.0% crates/chaos/src/scenarios/backlog_drain.rs
Jobs
ID Job ID Ran Files Coverage
1 23717982936.1 29 Mar 2026 08:11PM UTC 114
43.33
GitHub Action Run
Source Files on build 23717982936
  • Tree
  • List 114
  • Changed 18
  • Source Changed 16
  • Coverage Changed 17
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #23717982936
  • 4bcfb34f on github
  • Prev Build on main (#23696515415)
  • Next Build on main (#23718186908)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc