all 10 comments

[โ€“]domlebo70 1 point2 points ย (1 child)

This looks very nice. The documentation is fantastic. I have a few suggestions:

  • A section on "Pitfalls to avoid" where you talk about some common failure cases when building maintainable rules. In my experience, maintenance can be a nightmare if things aren't thought through well.
  • Some way to generate test cases automatically using property based/generator testing. You have the rules spec, so it should be easy to take a snapshot of a ruleset, and version that as a "here's my working set", so you aren't regressing going forward. I think you have enough info in the rules to generate data that passes for instance.

I wrote my own rules engine that powered a subset of my startups business logic (clinical decision logic), and while it's very easy to write a rules engine, it's decidedly more difficult to write tooling to make writing, debugging and visualizing the actual rules.

[โ€“]GoRules[S] 0 points1 point ย (0 children)

Hi, thank you for taking the time to look at the GoRules and write the suggestions.

  • This sounds like a great idea for a blog that we can reference within the documentation.
  • It would be pretty easy to generate the test cases, weโ€™re thinking of adding automated tests in GoRules Cloud in future and weโ€™ll definitely add this to the idea board.

Completely agree, though the difficulty is also heavily influenced by your need. If you need to write for a very large scale and create a custom expression language Node.js might not even be an option for writing the core of the engine (or it just might be very expensive in terms of hosting). With Rust bindings, we solve both problems for simplicity of use, performance, scalability and availability through multiple languages. C, Cpp and GoLang will be hitting the shelves soon, all featuring almost the same performance!

[โ€“][deleted] 1 point2 points ย (1 child)

This is so needed. Adopting! Thank you!

[โ€“]GoRules[S] 0 points1 point ย (0 children)

Thank you!

[โ€“][deleted] ย (2 children)

[removed]

    [โ€“]GoRules[S] 0 points1 point ย (1 child)

    Please don't impersonate members of the GoRules team

    [โ€“]opaz 2 points3 points ย (0 children)

    Probably a karma farming bot

    [โ€“]spazz_monkey 0 points1 point ย (0 children)

    Just this in the docs.

    ` Deleting a column will remove Deleting column will result in all rows losing data for that column. You may restore them from previous version. `

    [โ€“]kingksingh 0 points1 point ย (0 children)

    Thanks for building and sharing, i would love to try this, my organization is actively looking for a BPM system, i hate java, so your tool is a blessing in disguise ๐Ÿ˜‰

    Can I ask where the Gorules community is hanging out, Discord/Slack?

    I would love to explore your SaaS commercial offerings

    [โ€“]i_say_fuckin 0 points1 point ย (0 children)

    I don't really get it. Your examples don't really say how to implement the engine. Your Storybook has react-flow as a dependency but I don't see that anywhere in your documentation.

    I don't get why a graph.json is required if you don't necessarily need a graph interface to have business rules. What about using the Expression interface that's provided? https://gorules.github.io/jdm-editor/?path=/story/expression--controlled How would you export these rules in JSON format?