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

Magistrala Rules engine #13

Open
drasko opened this issue Oct 31, 2020 · 4 comments
Open

Magistrala Rules engine #13

drasko opened this issue Oct 31, 2020 · 4 comments
Assignees

Comments

@drasko
Copy link
Contributor

drasko commented Oct 31, 2020

FEATURE REQUEST

  1. Is there an open issue addressing this request? If it does, please add a "+1" reaction to the
    existing issue, otherwise proceed to step 2.

  2. Describe the feature you are requesting, as well as the possible use case(s) for it.
    Kupier is lightweight stream RE from EMQX team. It can be a very good fit from Mainflux.

We should consider creating a NATS Source, but actually it can also be connected directly to our MQTT broker (MQTT Source already exists)

Other alternative is Grule, but Kuiper seems more adapted for our use-case.

  1. Indicate the importance of this feature to you (must-have, should-have, nice-to-have).
    should-have
@drasko drasko changed the title Analyze Kuiper rules engine integration Kuiper rules engine integration Feb 1, 2021
@drasko
Copy link
Contributor Author

drasko commented Feb 1, 2021

The analysis showed good fit, with open question of scalability of Kuiper. We decided to proceed with integration.

@darkodraskovic is working on this, and there is already draft PR opened: https://github.com/mainflux/mainflux/pull/1337.

Moving it to 0.13, to allow more time for proper integration.

@dborovcanin
Copy link
Contributor

@drasko Since there has been no activity on this particular RE integration, and I also closed PR since it would be too complex to update, I suggest that we close this issue.

@dborovcanin dborovcanin changed the title Kuiper rules engine integration Magistrala Rules engine Dec 18, 2024
@dborovcanin dborovcanin transferred this issue from absmach/supermq Dec 18, 2024
@dborovcanin dborovcanin moved this to ⛏ Backlog in SuperMQ Dec 18, 2024
@dborovcanin
Copy link
Contributor

Also, this is worth exploring https://github.com/rulego/rulego.

@dborovcanin
Copy link
Contributor

We don't necessarily enforce message storage but we can process and publish back to NATS. We also need a no-code value comparison option since that's by far the most common use case and the option to create a custom script for more knowledgeable people and more complex logic.
Probably 90% of cases are comparison ones.
We process and push back to NATS under a special topic (say re/<chan_id>) so the user can choose what channel to write in DB - raw or processed by subscribing the Writer to the appropriate channel.

We also need predefined actions - like push to NATS, store to writer, webhook, and more direct integrations, such as sending an email, Slack notification, SMS, or something else.

By pushing to the channel, we can implicitly chain rules, keeping the workflow fairly simple (only three steps of in-channel->logic->action).

dborovcanin pushed a commit to dborovcanin/magistrala that referenced this issue Dec 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: ⛏ Backlog
5 participants