Skip to content

User JourneysΒΆ

Re: "do workflows need to know NMDC specifics", I've drafted a set of user journey diagrams with "Workflow" and "NMDC" as actors.

The first, "Keep NMDC in the know", is the current intended Workflow executioner journey, and is implemented by the NMDC Runtime:

journey
    title Keep NMDC in the know
    section Ensure and claim job
      Register metadata for inputs: 2: Workflow, NMDC
      Spawn job to be done: 3: NMDC
      Claim advertised job: 3: Workflow, NMDC
    section Job executiom
      Execute workflow: 5: Workflow
      Register execution status: 3: Workflow, NMDC
    section Output metadata registration
      Register data objects: 2: Workflow, NMDC
      Register other metadata: 2: Workflow, NMDC

The second journey, "Tell NMDC after-the-fact", is also currently supported by the implementation, and is similar to the first journey, but there is no real-time provenance / status update reporting:

journey
    title Tell NMDC after-the-fact
    section Ensure and claim job
      Register metadata for inputs: 2: Workflow, NMDC
      Spawn job to be done: 3: NMDC
      Claim advertised job: 3: Workflow, NMDC
    section Output metadata registration
      Register completed execution: 3: Workflow, NMDC
      Register data objects: 2: Workflow, NMDC
      Register other metadata: 2: Workflow, NMDC

The third journey, "Discover via NMDC, and give back", is aspirational. In current practice, Workflow executioners already know what they want to do, already know the relevant input data objects / metadata, and are simply informing the Runtime of what they did / are doing in the language of the NMDC schema. This last journey reflects some feedback we've gotten. For example, folks would like to register transformation functions with NMDC so that NMDC can e.g. generate schema-complaint JSON from a workflow's native GFF output files:

journey
    title Discover via NMDC, and give back
    section Create job to be done
      Sense relevant metadata updates: 3: NMDC
      Spawn and advertise job to be done: 3: NMDC
    section Job execution
      Register job-started status: 5: Workflow, NMDC
      Execute workflow, register status updates: 5: Workflow, NMDC
    section Output metadata registration
      Register data objects: 2: Workflow, NMDC
      Register some other metadata: 2: Workflow, NMDC
    section Additional metadata generation
      Sense relevant new data objects: 3: NMDC
      Generate schema-compliant JSON: 3: NMDC