Skip to content

[fan-out integration] add resiliency to firing mechanism #39

Description

@migmartri

Chainloop, currently has a mechanism to send attestation and artifact metadata to third party-integrations such an OCI registry (attestation) and Dependency-Track (CycloneDX SBOM).

225039624-72816cc9-8247-426e-8b94-622c469d93d9

It's implementation today happens in the service layer and has some drawbacks due to it's naive initial implementation using a go-routine

  • It does not have delivery guarantees.
  • It happens in memory so container restarts or new rollouts could potentially drop the task.
  • There is no receipt, ack of this fan-out execution of happening. Only looking at the logs (or sentry alerts) can give us some indication if a third-party integration fire has happened correctly. [fan-out integration] Record triggered integrations and results #123
  • There is no way to handle an attestation that came in the past, a.k.a replay
  • The firing logic is coupled to the service layer.

Lucky for us those shortcomings can be easily overcame by using an event bus / queue mechanism such as nats.io streams.

We should design a new architecture that fixes the aforementioned shortcomings and sets the stage to a generic third-party integration framework #38

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions