Skip to content

make jetstreamExotic more flexible and configurable #3549

@static-moonlight

Description

@static-moonlight

Describe the solution you'd like

I wanted to use jetstreamExotic as a central eventbus for all my workflows, more specifically: I would deploy a NATS service in my Kubernetes cluster, and all my workflows (multiple workflows across multiple namespaces) will use that as eventbus. Currently that idea is on ice because I hit some major obstacles:

  • I can't find a way to define the stream name for a set of workflows in a namespace (default value: default, I need default to be something else, like the namespace or eventbus name)
  • I can't find a way to modify the name of the first subject element (default: default.<eventsourcename>.<eventname>, I need default to be something else, like the namespace or eventbus name)
  • I can't find a way to modify the names of the KV_ streams (also created automatically, based on the names of eventsources or sensors, I'm not sure which), I need them to include the namespace (or eventbus name) as well
  • I can't find a way to set parameters like max-age (the stream is created automatically by Argo Events with no limits, I need some limits here)
    Image

Especially the naming issue ("default") will eventually result in naming collisions (workflows from different namespace will then share the same stream) and therefore I believe in unexpected behavior (like processing things they are not supposed to, those kinds of things.).

So, I need the jetstreamExotic to allow me to configure all those things, so that it can truly be used as a shared, pre-deployed eventbus.

Describe alternatives you've considered

  • I considered renaming eventsources and sensors to make them unique across all namespaces, but I concluded that this is going to result in confusing naming and I would consider this more as a workaround.

Message from the maintainers:

If you wish to see this enhancement implemented please add a 👍 reaction to this issue! We often sort issues this way to know what to prioritize.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions