Skip to content

Commit

Permalink
Improve transaction explanation wording
Browse files Browse the repository at this point in the history
Part of #267.
  • Loading branch information
jclark committed Dec 15, 2020
1 parent 3a7e925 commit a8484e1
Showing 1 changed file with 13 additions and 13 deletions.
26 changes: 13 additions & 13 deletions lang/spec.html
Original file line number Diff line number Diff line change
Expand Up @@ -8607,19 +8607,19 @@ <h3 id="transactions">Transactions</h3>
</p>
<p>
When a global transaction involves multiple Ballerina programs, there must be a
network protocol that allows that transaction managers in each program to
communicate. The protocol must also allow a remote method or resource method on
a service object to be informed of the global transaction, if any, to which it
belongs. When a listener object determines that a remote method or resource
method of a service object is to be a part of a global transaction manager, then
it will create a new transaction branch, join it to the global transaction and
push that on the transaction stack for the strand on which the method is called;
if the method is declared as <code>transactional</code>, the listener will not
call the method unless it can do this. Similarly, the protocol must allow a
remote method on a client object that is called in transaction mode to send
information about the global transaction of which it is part; if the method is
declared as <code>transactional</code>, then as usual the method can only be
called in transaction mode; it also implies that the client object
network protocol that allows that transaction managers for each Ballerina
program to communicate. The protocol must also allow a remote method or resource
method on a service object to be informed of the global transaction, if any, to
which it belongs. When a listener object determines that a remote method or
resource method of a service object is to be a part of a global transaction
manager, then it will create a new transaction branch, join it to the global
transaction and push that on the transaction stack for the strand on which the
method is called; if the method is declared as <code>transactional</code>, the
listener will not call the method unless it can do this. Similarly, the protocol
must allow a remote method on a client object that is called in transaction mode
to send information about the global transaction of which it is part; if the
method is declared as <code>transactional</code>, then as usual the method can
only be called in transaction mode; it also implies that the client object
implementation is transaction-aware, and that the recipient of the message sent
by the remote method must join the global transaction. A global transaction can
combine Ballerina programs with programs written in other programming languages
Expand Down

0 comments on commit a8484e1

Please sign in to comment.