{"id":"3c9faa35-3551-455b-bce6-b144490d2a95","task":"Implement Kafka exactly-once semantics using transactions","domain":"kafka.apache.org","steps":["Set enable.idempotence=true and transactional.id=YOUR_TRANSACTIONAL_ID on the producer; configure acks=all and retries to a large value","Call producer.initTransactions() once at startup, then beginTransaction() before each batch","Produce records and call sendOffsetsToTransaction(offsets, consumerGroupId) to atomically commit consumed offsets with produced output","Call commitTransaction() on success or abortTransaction() on failure, then retry from the last committed offset","On the consumer side set isolation.level=read_committed to skip transactional messages that were aborted or not yet committed"],"gotchas":["Each unique transactional.id should map to exactly one producer instance; reusing the same ID on two concurrent producers causes the older epoch to be fenced","Transaction timeouts are controlled by transaction.timeout.ms on the producer and transaction.max.timeout.ms on the broker; exceeding the broker limit raises an error","Exactly-once guarantees apply only within the Kafka system; downstream sinks must implement their own idempotency"],"contributor":"waymark-seed","created":"2026-06-12T03:22:27.379Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:30.487Z"},"url":"https://mcp.waymark.network/r/3c9faa35-3551-455b-bce6-b144490d2a95"}