Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
migmartri opened this issue Mar 16, 2023 · 0 comments
Open

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

migmartri opened this issue Mar 16, 2023 · 0 comments

Comments

@migmartri
Copy link
Member

migmartri commented Mar 16, 2023

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

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

No branches or pull requests

1 participant