Transactions
A transaction is an execution on the Sequencing Graph started by a notify or solicit event. A transaction is a series of data events carrying fields that continues until all goal events - response or consume - are satisfied and/or SPARKL cannot do more with the fields it has.
For every mix there can be one or more transactions, depending on the number of notify and solicit/response operations in the mix folder.
A transaction can have one or more goals, depending on the number of solicit/response and consume operations in the configuration.
SPARKL starts a new transaction when it receives an initial field set - due to a solicit or notify.
The transaction ends if SPARKL cannot do anything more, such as satisfying goal events - with the field set it has.
When a transaction happens, SPARKL:
- Takes the data - in the form of a field set - output by a client service through a notify or solicit
- Adds fields to the field set by using other services through reply events
- Hands the field set over to:
- The client service - in the case of a solicit/response
- Another service through a consume
- A combination of both
The SPARKLĀ® Sequencing Engine forms a logical execution flow from events based on some predefined intent.
It makes sure that:
- The right event happens
- At the right time
- At the right place
Thus the SPARKLĀ® Sequencing Engine is a process execution engine - but one whose program is not explicitly written, being instead inferred from the mix.