Introduction

A task service runs a function that is a step in the release process such as: Rolling over version numbers, updating file states for download, and making new data visible to users. These tasks should expose a common interface for the Coordination Service to communicate with. A task service should implement the endpoints in this specification in order for the release coordinator to properly invoke tasks.

Current Task Services

Portal ETL - The portal ETL is run to generate elasticsearch indices that serve the portal front end

Cavatica File Sync - Files need to be synced with Cavatica during a release so that they may be available in Cavatica

Release Reports - Generates summary statistics of studies in a release

Snapshot Service - Scrapes the state of the dataservice at the time of a release

Examples

There is currently the Task Reference repository which implements a very basic task service.

The Release Reports task service demonstrates a simple implementation of a real-world task service that uses AWS lambda and Dynamo db for a light-weight deployment.