ballerina/transactions module

Type Definitions

Type Values Description
UProtocol RemoteProtocol | LocalProtocol

Annotations

Name Attachement Points Data Type Description
Participant resource, function TransactionParticipantConfig

The annotation which is used to configure local transaction participant function.

Records Summary

Record Description
NotifyRequest
NotifyResponse
Participant2pcClientConfig
PrepareRequest
PrepareResponse
RemoteProtocol This represents the protocol associated with the coordination type.
RequestError
TransactionContext
TransactionParticipantConfig Contains the configurations for local transaction participant function.

Endpoints Summary

Endpoint Description
Participant2pcClientEP

Functions Summary

Return Type Function and Description
string getCurrentTransactionId()

Get the current transaction id. This function is useful for user code to save state against a transaction ID, so that when the oncommit or onabort functions registered for a transaction can retrieve that state using the transaction that is passed in to those functions.

TransactionContext|error<> registerParticipantWithRemoteInitiator(string transactionId, string transactionBlockId, string registerAtURL, transactions:RemoteProtocol[] participantProtocols)

Registers a participant with the initiator's coordinator. This function will be called by the participant.

Constants

Name Data Type Value Description
COMMAND_PREPARE string prepare
COMMAND_COMMIT string commit
COMMAND_ABORT string abort
PREPARE_RESULT_PREPARED_STR string prepared
PREPARE_RESULT_ABORTED_STR string aborted
PREPARE_RESULT_COMMITTED_STR string committed
PREPARE_RESULT_READ_ONLY_STR string read-only
NOTIFY_RESULT_NOT_PREPARED_STR string not-prepared
NOTIFY_RESULT_FAILED_EOT_STR string failed-eot
NOTIFY_RESULT_COMMITTED_STR string committed
NOTIFY_RESULT_ABORTED_STR string aborted
OUTCOME_COMMITTED string committed
OUTCOME_ABORTED string aborted
TRANSACTION_UNKNOWN string Transaction-Unknown

public type NotifyRequest record

Field Name Data Type Default Value Description
transactionId string
message string

public type NotifyResponse record

Field Name Data Type Default Value Description
message string

public type Participant2pcClientConfig record

Field Name Data Type Default Value Description
participantURL string
timeoutMillis int 0
retryConfig transactions:$anonType$1 {}

public type PrepareRequest record

Field Name Data Type Default Value Description
transactionId string

public type PrepareResponse record

Field Name Data Type Default Value Description
message string

public type RemoteProtocol record

This represents the protocol associated with the coordination type.

Field Name Data Type Default Value Description
name string

protocol name

url string

protocol URL. This URL will have a value only if the participant is remote. If the participant is local, the protocolFn will be called

public type RequestError record

Field Name Data Type Default Value Description
errorMessage string

public type TransactionContext record

Field Name Data Type Default Value Description
contextVersion string 1.0
transactionId string
transactionBlockId string
coordinationType string
registerAtURL string

public type TransactionParticipantConfig record

Contains the configurations for local transaction participant function.

Field Name Data Type Default Value Description
oncommit function (string) returns ()

Function to execute when transaction committed.

onabort function (string) returns ()

Function to execute when transaction aborted.

public function getCurrentTransactionId() returns (string)

Get the current transaction id. This function is useful for user code to save state against a transaction ID, so that when the oncommit or onabort functions registered for a transaction can retrieve that state using the transaction that is passed in to those functions.

Return Type Description
string

A string representing the ID of the current transaction.

public function registerParticipantWithRemoteInitiator(string transactionId, string transactionBlockId, string registerAtURL, transactions:RemoteProtocol[] participantProtocols) returns (TransactionContext|error<>)

Registers a participant with the initiator's coordinator. This function will be called by the participant.

Parameter Name Data Type Default Value Description
transactionId string

Global transaction ID to which this participant is registering with.

transactionBlockId string

The local ID of the transaction block on the participant.

registerAtURL string

The URL of the coordinator.

participantProtocols transactions:RemoteProtocol[]

The coordination protocals supported by the participant.

Return Type Description
TransactionContext|error<>

TransactionContext if the registration is successful or an error in case of a failure.

Endpoint Participant2pcClientEP

  • <Participant2pcClientEP> prepare(string transactionId) returns (string|error<>)

    Parameter Name Data Type Default Value Description
    transactionId string
    Return Type Description
    string|error<>
  • <Participant2pcClientEP> notify(string transactionId, string message) returns (string|error<>)

    Parameter Name Data Type Default Value Description
    transactionId string
    message string
    Return Type Description
    string|error<>