archivematica-architectural-decisions

JSON-encoded workflow

Context and problem statement

The core of Archivematica is a server application that coordinates work across multiple workers. The collection of related tasks (also known as workflow data) is stored in the application database using a relation model.

Introducing changes to the workflow data is hard because the model is clumsy and convoluted. Changes to the data are delivered as data and schema migrations which are difficult to implement and they add risk to the process of upgrading the software.

Additionally, we want to add full internationalisation support in order to make the system more attractive to a wider range of users and increase adoption. We need a simpler mechanism to deliver translations and other workflow data changes in general.

Considered options

We’ve only considered one option - this is the interim JSON-encoded workflow document generated by the json_links module.

Decision outcome