Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
backbone-message-format backbone-message-format
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 29
    • Issues 29
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 5
    • Merge requests 5
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Metrics
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Package Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Communications Backbone System
  • backbone-message-formatbackbone-message-format
  • Issues
  • #63

Closed
Open
Created Aug 28, 2024 by Dan Jones@danjonOwner

MAS-DT add ID chain to header

@owanes idea of adding a growing list of UUIDs to the header so you could track back through the transaction history without everyone needing to maintain state. I think there's a nice way of doing this but it doesn't work in all scenarios.

  1. The message header has a chain property
  2. When an adapter builds a new message they have to populate the existing chain into the new message header
  3. When the new message is sent the backbone adds the message type and UUID of the new message to the chain

This could be as a growing list

Implementation 1

{
  "chain": [
    {
      "message_type": "planning_configuration", 
      "uuid": "[uuid1]"
    },
    {
      "message_type": "mission_plan", 
      "uuid": "[uuid2]"
    }
  ]
}

.. the problem with this is that it gets big pretty quickly so you'd end up with every platform_status in the track in the chain since retasking the platform is triggered by the incoming status not by the incoming configuration

Implementation 2

{
  "chain": {
    "planning_configuration": "[uuid1]",
    "mission_plan": "[uuid2]"
  }
}

This has the advantage that it's much lighter and beyond the first few messages it doesn't grow.

The problem with both of these approaches is what triggers the outgoing message. In the case of a mission_plan the first message maybe be triggered by a planning_configuration but it's more likely it's triggered by a platform_status and all subsequent messages are triggered by platform_status

The platform_status is triggered by the platform so doesn't have a triggering incoming message at all.

This means it would be hard to get the planning_configuration uuid into the chain without some stateful-ness.

I think this may be worth doing for the approval process but the most important id in the chain is the planning_configuration in the mission_plan message so we need to solve how that gets populated.

Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking