Interfaces
Cumulus has multiple interfaces that allow interaction with discrete components of the system, such as starting workflows via SNS/Kinesis/SQS, manually queueing workflow start messages, submitting SNS notifications for completed workflows, and the many operations allowed by the Cumulus API.
The diagram below illustrates the workflow process in detail and the various interfaces that allow starting of workflows, reporting of workflow information, and database create operations that occur when a workflow reporting message is processed. For interfaces with expected input or output schemas, details are provided below.
Workflow triggers and queuing
Kinesis stream
As a Kinesis stream is consumed by the messageConsumer
Lambda to queue workflow executions, the incoming event is validated against this consumer schema by the ajv
package.
SQS queue for executions
The messages put into the SQS queue for executions should conform to the Cumulus message format.
Workflow executions
See the documentation on Cumulus workflows.
Workflow reporting
SNS reporting topics
For granule and PDR reporting, the topics will only receive data if the Cumulus workflow execution message meets the following criteria:
- Granules - workflow message contains granule data in
payload.granules
- PDRs - workflow message contains PDR data in
payload.pdr
The messages published to the SNS reporting topics for executions and PDRs and the record
property in the messages published to the granules SNS topic should conform to the model schema for each data type.
Further detail on workflow reporting and how to interact with these interfaces can be found in the workflow notifications data cookbook.
Cumulus API
See the Cumulus API documentation.