View Source kpro_txn_lib (kafka_protocol v4.2.7)

Summary

Functions

Send consumer group ID to transaction coordinator. Transaction coordinator will map the group ID to its internal partition number in __consumer_offsets topic. then add that topic-partition to transaction like what the add_partitions_to_txn API would achieve.

Add partitions to transaction.

Commit or abort transaction.

Types

connection/0

-type connection() :: kpro:connection().

group_id/0

-type group_id() :: kpro:group_id().

offsets_to_commit/0

-type offsets_to_commit() :: kpro:offsets_to_commit().

partition/0

-type partition() :: kpro:partition().

topic/0

-type topic() :: kpro:topic().

txn_ctx/0

-type txn_ctx() :: kpro:txn_ctx().

Functions

add_offsets_to_txn(TxnCtx, CgId, Opts)

-spec add_offsets_to_txn(txn_ctx(), group_id(), #{timeout => timeout()}) -> ok | {error, any()}.

Send consumer group ID to transaction coordinator. Transaction coordinator will map the group ID to its internal partition number in __consumer_offsets topic. then add that topic-partition to transaction like what the add_partitions_to_txn API would achieve.

add_partitions_to_txn(TxnCtx, TPL, Opts)

-spec add_partitions_to_txn(txn_ctx(), [{topic(), partition()}], #{timeout => timeout()}) ->
                               ok | {error, any()}.

Add partitions to transaction.

end_txn(TxnCtx, AbortOrCommit, Opts)

-spec end_txn(txn_ctx(), commit | abort, #{timeout => timeout()}) -> ok | {error, any()}.

Commit or abort transaction.

txn_init_ctx(Connection, TxnId, Opts)

See also: kpro:txn_init_ctx/3.

txn_offset_commit(GrpConnection, GrpId, TxnCtx, Offsets, Opts)

-spec txn_offset_commit(connection(),
                        group_id(),
                        txn_ctx(),
                        offsets_to_commit(),
                        #{timeout => timeout(), user_data => binary()}) ->
                           ok | {error, any()}.