transaction
Binding-scoped transactional Kafka publishing.
This is a separate capability from producer. Its binding supplies a
stable transactional.id and, when send-offsets is used, a
transaction.group.id. Keeping it separate prevents ordinary concurrent
sends from joining a transaction implicitly and lets an operator grant
transactional authority independently.
The provider owns the native producer. begin leases its single Kafka
transaction slot and returns the stateful resource through which every
participating send is made. The initial contract permits one active
transaction per binding; a concurrent begin fails with state or a
retriable resource error.
Each simultaneously live producer needs a distinct stable
transactional.id. Deploying the same ID on two hosts or replicas causes
Kafka to fence one of them. Elastic transaction pools therefore require an
external stable-ID allocation scheme; this interface does not invent one.