elastic / elastic/cloudbeat

[POC] Adopt a third party tool to handle cloudbeat async pipeline

Open
#691 8 comments 0 reactions 0 assignees View on GitHub
cloudbeat Team:Cloud Security technical debt Vulnerability Management
Dominant language
Go
Stars
58
Forks
55
Avg merge
9h 9m
Merged PRs (30d)
424

Description

## Motivation
Today in cloudbeat, we have our own custom implementation for handling asynchronous flow.
In posture flavor, we are using `Step`, a thin generic function to support a multilayer of asynchronous pipelines implemented over go channels.
In vulnerability flavor, we are using the `worker`, a main component that syncs between all the async providers, this implementation forces all the providers to be channels aware and focused on the pipeline instead of the business logic.

## Proposition: [RxGo](https://github.com/ReactiveX/RxGo)
A well-tested library to handle async pipeline of events, that will allow us to focus on the business logic implementation and go forward without the concern synchronisation bugs.
Maybe as a further step, it can replace the `pipeline` package entirely.
RxGo has 4.5K stars, and the organization is also popular among other coding languages.

### Definition of done
- [ ] A POC to check if the library fits our requirements
- [ ] A summary of the pros and cons of using it
- [ ] Wrap a single async flow in cloudbeat (vulnerability scanning for example) with the selected third party tool

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.