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.

Note: A transaction can be processed any number of times.

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.

Note: The orchestration of transactions is handled by the Sequencer extension. For this reason, notify and solicit/response operations must be implemented by a service provisioned using this extension.

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:

  1. Takes the data - in the form of a field set - output by a client service through a notify or solicit
  2. Adds fields to the field set by using other services through reply events
  3. 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.