RuleShake est une architecture multi-services :
Chaque service est autonome, gère son propre modèle de données et expose une API Rest.
Le moteur de calcul RuleShake Engine est implémentée sous forme d'une librairie java. Cette librairie offre une représentation des différents types de variables et s'appuie sur mvel pour l'évaluation des formules de calcul.
Cette librairie est embarquée dans chacun des services qui permet l'évaluation des variables. C'est le cas de RuleShake Catalog lors de la simulation des collections, mais aussi de RuleShake Runner dont la principale fonction est justement l'évaluation des collections.
Les bases de données de chaque service sont gérées par mongodb.
Les services sont développés en java avec le framework Spring Boot en mode réactif sur l'ensemble de la chaîne, car mongodb offre un client réactif.
En plus des services back-end, une application front-end, RuleShake Studio, complète la suite RuleShake. Elle est développée en Vue.js 3 et communique avec les services back-end via API Rest.
L'ensemble de la suite RuleShake (front comme back) est sécurisé et nécessite une authentification OAuth2 OpenID Connect. N'importe quel fournisseur d'identité respectant ce protocole peut être utilisé.
RuleShake est également multi-tenant où chaque tenant accède à ses propres collections de données. Par conséquent, avec cette architecture, il est possible de séparer également les bases de données ou bien de garder une seule base de données ou seront présents l'ensemble des collections de tous les tenants.
RuleShake c'est aussi :