Skip to content

Discovery background processing feedback #162

@amydevs

Description

@amydevs

Specification

There should be status indicators for TaskManager tasks related to the Discovery domain.

This command should provide feedback on the progress of discovery tasks of gestalts, and what gestalts have been recently discovered.

Ideally there should also be a way to cancel some of these tasks.

Discovery events

Discovery is already evented since it's async-init decorated. But we need to updated to have it's usual domain specific events along with discovery related events. We need an event for the following. More events may be added if any seem relevant.

  1. Vertex queued
  2. Vertex Processed
  3. Vertex failed to process
  4. Vertex culled from future processing due to failing to process for too long

~audit discovery command~

NOTE: this section is being split out to a new issue/PR that addresses the audit domain generally.

We need to add the audit domain and the audit discovery command. It will function similar to connection auditing where we provide an endless stream of the above events.

Part of the seeking will include a start point and an end point. Both of these are optional and can be set in the past or the future. When outputting events, it will stream the history from the start timestamp to the end timestamp. If the endpoint is in the past then the command will yield the history till that point and then end. If the start point or end point is into the future then the command will wait until the end point or cancellation to end. Future events will be yielded as they happen.

We want to add some degree of filtering to the events that are yielded. We could allow filtering for a specific or collection of nodes/identities. But also possibly filter on a vertex's parent or gestalt. If filtering is added then we'd need to work out how to specify filters as CLI options and how they interact.`

identities discover command

This command needs to be modified to provide feedback. Normally this command is non-blocking where it just adds a vertex to the queue and returns. But we need to add a --blocking flag or some flag that indicates feedback. When enabled this command will output events related to the vertex it queued and it's children vertices. Then command will end when all child vertices are processed. It could also be cancelled the normal way by aborting the command.

When events are printed out, they should be consistent between the two commands.

Additional context

MatrixAI/Polykey#691

Tasks

  • 1. Add relevant discovery events to be emitted by the discovery domain.
    1. ~Implement audit discovery command.(Name TBD)~ - Being addressed in a new PR for the audit domain
  • 3. Implement feedback for identities discover command. Command will default to non-blocking with no feedback unless flagged for blocking.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions