Overview
The synchronizer currently uses an Apache Pulsar message queue to synchronize state between storage and individual instances of kubescape.
Pulsar can support a very large message volume, has nice features for transforming messages in transit, as well as a number of supported input and output connectors.
Problem
Pulsar seems like a really nice tool for this use case, but is not as widely used as some alternatives.
Specifically, it might make sense to support Kafka, since it has very widespread adoption, or NATS, because it is also a CNCF project and has a smaller resource footprint.
Other "lighter" message queues may also be interesting for users who want the basic functionality of the synchronizer, but without the footprint of Pulsar (or Kafka, for that matter).
Solution
This issue is mostly to inquire whether the project is open to contributions for alternative backend implementations, and to get a general understanding about what the maintainers would want to see from such contributions. Would it be in line with the project's long-term goals? Are there requirements that a potential backend would need to fulfill?
Alternatives
Only support Pulsar (status quo).
Users could fork or re-implement the synchronizer and add their own backend support.
Users could connect Pulsar to a desired alternative using Pulsar sources/sinks.
Additional context
N/A
Overview
The synchronizer currently uses an Apache Pulsar message queue to synchronize state between storage and individual instances of kubescape.
Pulsar can support a very large message volume, has nice features for transforming messages in transit, as well as a number of supported input and output connectors.
Problem
Pulsar seems like a really nice tool for this use case, but is not as widely used as some alternatives.
Specifically, it might make sense to support Kafka, since it has very widespread adoption, or NATS, because it is also a CNCF project and has a smaller resource footprint.
Other "lighter" message queues may also be interesting for users who want the basic functionality of the synchronizer, but without the footprint of Pulsar (or Kafka, for that matter).
Solution
This issue is mostly to inquire whether the project is open to contributions for alternative backend implementations, and to get a general understanding about what the maintainers would want to see from such contributions. Would it be in line with the project's long-term goals? Are there requirements that a potential backend would need to fulfill?
Alternatives
Only support Pulsar (status quo).
Users could fork or re-implement the synchronizer and add their own backend support.
Users could connect Pulsar to a desired alternative using Pulsar sources/sinks.
Additional context
N/A