amuldotexe opened a new pull request, #2815: URL: https://github.com/apache/iggy/pull/2815
## Which issue does this PR close? Partially addresses #2739 (MongoDB sink only). MongoDB source support will follow in a separate PR. ## Rationale We need a MongoDB sink connector with explicit failure behavior so writes are never reported as successful when they are not. ## What changed? Before this change, MongoDB sink support was missing for connector runtime users. This PR adds the MongoDB sink connector, including insert/write logic, retry handling for transient failures, explicit duplicate-key failure behavior, metadata mapping, and delivery-semantics documentation. It also adds sink-focused integration and unit tests to validate payload formats, batch behavior, auto-create collection behavior, and non-silent failure paths. ## Local Execution - Passed: `cargo fmt --all -- --check` - Passed: `cargo clippy -p iggy_connector_mongodb_sink --all-targets -- -D warnings` - Passed: `cargo test -p iggy_connector_mongodb_sink` (13 passed) - Passed: `cargo test -p integration --test mod -- mongodb_sink` (10 passed) - Pre-commit hooks ran - Docker E2E proof image: `ghcr.io/amuldotexe/iggy-mongodb-sink-demo:issue-2739-05fbec16` - Docker smoke result: `SMOKE_OK ... docs=3` - GHCR package: https://github.com/users/amuldotexe/packages/container/package/iggy-mongodb-sink-demo - Key sink tests: - `duplicate_key_is_explicit_failure_and_not_silent_success` - `ordered_duplicate_partial_insert_has_exact_accounting` - `schema_validation_mid_batch_surfaces_hard_error_and_partial_prefix` - `write_concern_timeout_does_not_report_full_success` - `retryable_write_failover_keeps_single_doc_per_id` - `no_writes_performed_label_path_preserves_state_accuracy` - `json_messages_sink_to_mongodb` - `binary_messages_sink_as_bson_binary` - `large_batch_processed_correctly` - `auto_create_collection_on_open` - `given_no_client_should_return_error_not_silent_ok` ## AI Usage 1. Which tools? Codex, Claude Code, Rust Rover 2. Scope of usage? PRD, connector precedent analysis, TDD, implementation, and PR prep 3. How did you verify the generated code works correctly? Ran all local format, clippy, unit, and integration checks listed above 4. Can you explain every line of the code if asked? Yes -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
